[
https://issues.jboss.org/browse/WFLY-9881?page=com.atlassian.jira.plugin....
]
Richard Cannock updated WFLY-9881:
----------------------------------
Component/s: EJB
Description:
Deploying a simple Stateless session bean with a single get method that has a dependency
on OpenCV release 3.3.1 (opencv-330.jar) and it's corresponding 64 bit native library
(opencv_java330.dll) from
https://github.com/opencv/opencv/releases/tag/3.3.1
results in a UnsatisfiedLinkError:
Caused by: java.lang.UnsatisfiedLinkError: org.opencv.core.Mat.n_eye(III)J
at org.opencv.core.Mat.n_eye(Native Method)
at org.opencv.core.Mat.eye(Mat.java:492)
at test.SimpleJMSRestfulWebService.putMessage(SimpleJMSRestfulWebService.java:57)
The sample get method is shown below:
package test;
import javax.ejb.Stateless;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
/**
*
*/
@Stateless
@Path("/jms")
public class SimpleJMSRestfulWebService
{
/**
* Our RESTful webservice
*/
@GET
public String putMessage()
{
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Mat mat = Mat.eye(3, 3, CvType.CV_8UC1);
System.out.println("mat = " + mat.dump());
return "works";
}
}
The native library is placed in C:\Windows, which is in the java.library.path system
variable.
Same code runs without exception in GlassFish Server 4.1 and also within netbeans 8.2
(albeit in a differnet test harness)
Using -Djava.library.path VM argumnents using a different path for the native library also
causes the same error.in netbeans.
Removing the library from C:\Windows causes a different stack trace, which suggests that
wildfly is at least partially loading the library:
Caused by: java.lang.UnsatisfiedLinkError: no opencv_java330 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
Using depends.exe or dependency walker on opencv_java330.dll reports no unsatisfied
dependencies for this dll.
Summary: UnsatisfiedLinkError - Open CV (was: Unsats)
Environment:
Windows Server 2012 R2 \ Windows 8.1 Professional, 64 bit JRE\JDK 8 update 112
OpenCV 3.3.1 (
https://github.com/opencv/opencv/releases/tag/3.3.1)
Affects Version/s: 11.0.0.Final
UnsatisfiedLinkError - Open CV
--------------------------------
Key: WFLY-9881
URL:
https://issues.jboss.org/browse/WFLY-9881
Project: WildFly
Issue Type: Bug
Components: EJB
Affects Versions: 11.0.0.Final
Environment: Windows Server 2012 R2 \ Windows 8.1 Professional, 64 bit JRE\JDK 8
update 112
OpenCV 3.3.1 (
https://github.com/opencv/opencv/releases/tag/3.3.1)
Reporter: Richard Cannock
Assignee: Jason Greene
Deploying a simple Stateless session bean with a single get method that has a dependency
on OpenCV release 3.3.1 (opencv-330.jar) and it's corresponding 64 bit native library
(opencv_java330.dll) from
https://github.com/opencv/opencv/releases/tag/3.3.1
results in a UnsatisfiedLinkError:
Caused by: java.lang.UnsatisfiedLinkError: org.opencv.core.Mat.n_eye(III)J
at org.opencv.core.Mat.n_eye(Native Method)
at org.opencv.core.Mat.eye(Mat.java:492)
at test.SimpleJMSRestfulWebService.putMessage(SimpleJMSRestfulWebService.java:57)
The sample get method is shown below:
package test;
import javax.ejb.Stateless;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
/**
*
*/
@Stateless
@Path("/jms")
public class SimpleJMSRestfulWebService
{
/**
* Our RESTful webservice
*/
@GET
public String putMessage()
{
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Mat mat = Mat.eye(3, 3, CvType.CV_8UC1);
System.out.println("mat = " + mat.dump());
return "works";
}
}
The native library is placed in C:\Windows, which is in the java.library.path system
variable.
Same code runs without exception in GlassFish Server 4.1 and also within netbeans 8.2
(albeit in a differnet test harness)
Using -Djava.library.path VM argumnents using a different path for the native library
also causes the same error.in netbeans.
Removing the library from C:\Windows causes a different stack trace, which suggests that
wildfly is at least partially loading the library:
Caused by: java.lang.UnsatisfiedLinkError: no opencv_java330 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
Using depends.exe or dependency walker on opencv_java330.dll reports no unsatisfied
dependencies for this dll.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)