Opencv Imgcodecs.imread UnsatisfiedLinkError with Play Framework - java

I am calling opencv's Imgcodecs.imread in one of play frameworks controller, but its giving me UnsatisfiedLinkError. Calling this
Imgcodecs.imread("/path/to/image.jpg")
and get this error
play.api.http.HttpErrorHandlerExceptions$$anon$1: Execution exception[[RuntimeException: java.lang.UnsatisfiedLinkError: org.opencv.imgcodecs.Imgcodecs.imread_1(Ljava/lang/String;)J]]
at play.api.http.HttpErrorHandlerExceptions$.throwableToUsefulException(HttpErrorHandler.scala:293)
at play.api.http.DefaultHttpErrorHandler.onServerError(HttpErrorHandler.scala:220)
at play.api.GlobalSettings$class.onError(GlobalSettings.scala:160)
at play.api.DefaultGlobal$.onError(GlobalSettings.scala:188)
at play.api.http.GlobalSettingsHttpErrorHandler.onServerError(HttpErrorHandler.scala:100)
at play.core.server.netty.PlayRequestHandler$$anonfun$2$$anonfun$apply$1.applyOrElse(PlayRequestHandler.scala:100)
at play.core.server.netty.PlayRequestHandler$$anonfun$2$$anonfun$apply$1.applyOrElse(PlayRequestHandler.scala:99)
at scala.concurrent.Future$$anonfun$recoverWith$1.apply(Future.scala:346)
at scala.concurrent.Future$$anonfun$recoverWith$1.apply(Future.scala:345)
at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32)
Caused by: java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: org.opencv.imgcodecs.Imgcodecs.imread_1(Ljava/lang/String;)J
at play.api.mvc.ActionBuilder$$anon$2.apply(Action.scala:463)
at play.api.mvc.Action$$anonfun$apply$2$$anonfun$apply$5$$anonfun$apply$6.apply(Action.scala:112)
at play.api.mvc.Action$$anonfun$apply$2$$anonfun$apply$5$$anonfun$apply$6.apply(Action.scala:112)
at play.utils.Threads$.withContextClassLoader(Threads.scala:21)
at play.api.mvc.Action$$anonfun$apply$2$$anonfun$apply$5.apply(Action.scala:111)
at play.api.mvc.Action$$anonfun$apply$2$$anonfun$apply$5.apply(Action.scala:110)
at scala.Option.map(Option.scala:146)
at play.api.mvc.Action$$anonfun$apply$2.apply(Action.scala:110)
at play.api.mvc.Action$$anonfun$apply$2.apply(Action.scala:103)
at scala.concurrent.Future$$anonfun$flatMap$1.apply(Future.scala:253)
Caused by: java.lang.UnsatisfiedLinkError: org.opencv.imgcodecs.Imgcodecs.imread_1(Ljava/lang/String;)J
at org.opencv.imgcodecs.Imgcodecs.imread_1(Native Method)
at org.opencv.imgcodecs.Imgcodecs.imread(Imgcodecs.java:118)
at controllers.ImageToolController$$anonfun$index$1.apply(ImageToolController.scala:52)
at controllers.ImageToolController$$anonfun$index$1.apply(ImageToolController.scala:48)
at play.api.mvc.ActionBuilder$$anonfun$apply$13.apply(Action.scala:371)
at play.api.mvc.ActionBuilder$$anonfun$apply$13.apply(Action.scala:370)
at play.api.mvc.Action$.invokeBlock(Action.scala:498)
at play.api.mvc.Action$.invokeBlock(Action.scala:495)
at play.api.mvc.ActionBuilder$$anon$2.apply(Action.scala:458)
at play.api.mvc.Action$$anonfun$apply$2$$anonfun$apply$5$$anonfun$apply$6.apply(Action.scala:112)
The funny part is the same call works from an object that extends App.
object Main extends App {
Imgcodecs.imread("/path/to/image.jpg")
}
I am using sbt to run the play server as well the above object. One works, one doesnt.
I am making the call to load the libopencv_java320.dylib library
System.load("/path/to/opencv/opencv_build/lib/libopencv_java320.dylib")
I am not sure whats causing this anomaly.

Related

fabric crashes in intelij

all i did is setup the project and the mod id and that stuff and first time running i get this erorr
Exception in thread "main" org.spongepowered.asm.launch.MixinInitialisationError: Error initialising mixin config modid.mixins.json
at org.spongepowered.asm.mixin.transformer.Config.create(Config.java:153)
at org.spongepowered.asm.mixin.Mixins.createConfiguration(Mixins.java:100)
at org.spongepowered.asm.mixin.Mixins.addConfiguration(Mixins.java:87)
at net.fabricmc.loader.launch.common.FabricMixinBootstrap.addConfiguration(FabricMixinBootstrap.java:44)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at net.fabricmc.loader.launch.common.FabricMixinBootstrap.init(FabricMixinBootstrap.java:83)
at net.fabricmc.loader.launch.knot.Knot.init(Knot.java:132)
at net.fabricmc.loader.launch.knot.KnotClient.main(KnotClient.java:28)
at net.fabricmc.devlaunchinjector.Main.main(Main.java:86)
Caused by: java.lang.IllegalArgumentException: The specified resource 'modid.mixins.json' was invalid or could not be read
at org.spongepowered.asm.mixin.transformer.MixinConfig.create(MixinConfig.java:1090)
at org.spongepowered.asm.mixin.transformer.Config.create(Config.java:148)
... 8 more
Make sure to change modid.mixins.json in your fabric.mod.json

Attach an agent remotely using Bytebuddy

I am trying to attach an agent for a process using bytebuddy .I found that we can use ByteBuddyAgent.attach(file,"18467"); for this. But when i am trying to do this following errors occurring.
This is agent i used
File file = (new File("Agent.jar"));
Error
java.lang.IllegalStateException: Error during attachment using: net.bytebuddy.agent.ByteBuddyAgent$AttachmentProvider$Compound#e26db604
at net.bytebuddy.agent.ByteBuddyAgent.install(ByteBuddyAgent.java:378)
at net.bytebuddy.agent.ByteBuddyAgent.attach(ByteBuddyAgent.java:227)
at net.bytebuddy.agent.ByteBuddyAgent.attach(ByteBuddyAgent.java:202)
at net.bytebuddy.agent.ByteBuddyAgent.attach(ByteBuddyAgent.java:189)
at common.netty.echo.EchoHttpServer.main(EchoHttpServer.java:95)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.bytebuddy.agent.Attacher.install(Attacher.java:77)
at net.bytebuddy.agent.ByteBuddyAgent.install(ByteBuddyAgent.java:373)
... 4 more
Caused by: com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file: target process not responding or HotSpot VM not loaded
at sun.tools.attach.LinuxVirtualMachine.<init>(LinuxVirtualMachine.java:106)
at sun.tools.attach.LinuxAttachProvider.attachVirtualMachine(LinuxAttachProvider.java:63)
at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:208)
... 10 more
Any idea for this ? and When i try to use this attachment from another agent as follows
public class Agent {
public static void premain(String args, Instrumentation instrumentation) {
System.out.println("Premain");
File file ;
try {
file = (new File("Agent.jar"));
ByteBuddyAgent.attach(file,"18467");
}
catch (Exception e)
{
e.printStackTrace();
}
}
I am getting this error
Error
java.lang.IllegalStateException: Error during attachment using: net.bytebuddy.agent.ByteBuddyAgent$AttachmentProvider$Compound#423f0955
at net.bytebuddy.agent.ByteBuddyAgent.install(ByteBuddyAgent.java:378)
at net.bytebuddy.agent.ByteBuddyAgent.attach(ByteBuddyAgent.java:227)
at net.bytebuddy.agent.ByteBuddyAgent.attach(ByteBuddyAgent.java:202)
at net.bytebuddy.agent.ByteBuddyAgent.attach(ByteBuddyAgent.java:189)
at common.netty.echo.Agent.premain(Agent.java:111)
at common.netty.echo.EchoHttpServer.<clinit>(EchoHttpServer.java:56)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.bytebuddy.agent.Attacher.install(Attacher.java:77)
at net.bytebuddy.agent.ByteBuddyAgent.install(ByteBuddyAgent.java:373)
... 5 more
Caused by: java.lang.UnsatisfiedLinkError: Native Library /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libattach.so already loaded in another classloader
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1907)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1845)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at sun.tools.attach.LinuxVirtualMachine.<clinit>(LinuxVirtualMachine.java:342)
at sun.tools.attach.LinuxAttachProvider.attachVirtualMachine(LinuxAttachProvider.java:63)
at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:208)
... 11 more
Any suggestion on this!!
As for the first error message: does the target VM run the attachment listener? You can try to force starting the thread by setting -XX:+StartAttachListener which should be set by default. What JVM version are you running?
The other error message indicates that the attachment library was already loaded by another class loader. See this answer for further details: java.lang.UnsatisfiedLinkError: Native Library XXX.so already loaded in another classloader

Getting "java.lang.NoClassDefFoundError: javax/security/jacc/PolicyContext" when run node.js

I am trying to get a node.js+node-java app that calls an API from a commercial product, and have gotten it to the point it almost runs, but now, when I run it, it is giving me a "java.lang.NoClassDefFoundError".
Here's the ending of the output when it gets this error:
THIS IS CONSOLE.LOG!!
Finished STARTING TO DO MyFactoryImplClass.getPepRequestFactory()...
About to do pepReqF1.newPepRequest()...
/apps/Oracle/OESCLIENT/oes_sm_instances/smtest8-java-PULL-NODEJS/testOES.js:97
var pepReq1 = pepReqF1.newPepRequestSync("Administrators", "GET" , "test/foo2/fooresource" );
^
Error: Error running instance method
java.lang.NoClassDefFoundError: javax/security/jacc/PolicyContext
at oracle.security.jps.runtime.AppSecurityContext$2.run(AppSecurityContext.java:223)
at oracle.security.jps.runtime.AppSecurityContext$2.run(AppSecurityContext.java:221)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.security.jps.runtime.AppSecurityContext.getApplicationID(AppSecurityContext.java:221)
at oracle.security.jps.internal.api.runtime.AppSecurityContext.getApplicationID(AppSecurityContext.java:66)
at oracle.security.jps.openaz.pep.SubjectObjMapper$2.run(SubjectObjMapper.java:234)
at oracle.security.jps.openaz.pep.SubjectObjMapper$2.run(SubjectObjMapper.java:231)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.security.jps.openaz.pep.SubjectObjMapper.mapStringSubject(SubjectObjMapper.java:231)
at oracle.security.jps.openaz.pep.SubjectObjMapper.mapToJpsObject(SubjectObjMapper.java:173)
at oracle.security.jps.openaz.pep.PepRequestImpl.setAccessSubject(PepRequestImpl.java:429)
at oracle.security.jps.openaz.pep.PepRequestFactoryImpl.newPepRequest(PepRequestFactoryImpl.java:202)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at Error (native)
at Object.<anonymous> (/apps/Oracle/OESCLIENT/oes_sm_instances/smtest8-java-PULL-NODEJS/testOES.js:97:24)
at Module._compile (module.js:556:32)
at Object.Module._extensions..js (module.js:565:10)
at Module.load (module.js:473:32)
at tryModuleLoad (module.js:432:12)
at Function.Module._load (module.js:424:3)
at Module.runMain (module.js:590:10)
at run (bootstrap_node.js:394:7)
at startup (bootstrap_node.js:149:9)
[root#nodejs smtest8-java-PULL-NODEJS]#
I found that PolicyContext class is in jacc-api.jar, so I put a copy of jacc-api.jar in my directory and then added:
enter code herejava.classpath.push("/apps/node-v6.6.0-linux-x64/code/jacc-api.jsr");
However, even after doing that, I am still getting the same error when I run my node.js+node-java app.
I am guessing that when I call out to the commercial product's API, that THAT is looking for this PolicyContext class, so I tried exporting CLASSPATH set to the path that the jacc-api.jar file, but even then I get the same error.
Where can I add that JAR to the CLASSPATH so that I can eliminate this error?
Thanks,
Jim

Play framework : UnexpectedException: While applying class play.classloading.enhancers.LVEnhancer

I am using for the first time Play framework, on Ubuntu 14, with an existing project. When I try to run the application, I get the following error:
Internal Server Error (500) for request GET /
Oops: UnexpectedException
Unexpected error : While applying play.CorePlugin#44821a96 on models.BookingDTO, caused by exception UnexpectedException: While applying class play.classloading.enhancers.LVEnhancer on models.BookingDTO
play.exceptions.UnexpectedException: While applying play.CorePlugin#44821a96 on models.BookingDTO
at play.plugins.PluginCollection.enhance(PluginCollection.java:582)
at play.classloading.ApplicationClasses$ApplicationClass.enhance(ApplicationClasses.java:242)
at play.classloading.ApplicationClassloader.loadApplicationClass(ApplicationClassloader.java:164)
at play.classloading.ApplicationClassloader.getAllClasses(ApplicationClassloader.java:431)
at play.Play.start(Play.java:527)
at play.Play.detectChanges(Play.java:647)
at play.Invoker$Invocation.init(Invoker.java:205)
at Invocation.HTTP Request(Play!)
Caused by: play.exceptions.UnexpectedException: While applying class play.classloading.enhancers.LVEnhancer on models.BookingDTO
at play.CorePlugin.enhance(CorePlugin.java:314)
at play.plugins.PluginCollection.enhance(PluginCollection.java:577)
... 7 more
Caused by: play.exceptions.UnexpectedException: LVEnhancer: cannot enhance the behavior 'models.BookingDTO.findAllNextBookings(java.lang.String)'
at play.classloading.enhancers.LVEnhancer.enhanceThisClass(LVEnhancer.java:112)
at play.CorePlugin.enhance(CorePlugin.java:309)
... 8 more
Caused by: java.lang.NullPointerException
at bytecodeparser.CodeParser.parse(CodeParser.java:53)
at bytecodeparser.analysis.stack.StackAnalyzer.init(StackAnalyzer.java:91)
What's wrong?
Thank you very much for your answer.
I found the solution : I didn't have the version of javassist that didin't match with the project files.
With the Playframework 1.3, javassist-3.20xxx didn't work. I had to install javassist-3.19xxx

Anyone using grailsflow in its Plug-in or Demo version?

Grailsflow seems to be broken (as of Jan 2010) with Grails 1.2 or above, in both 'demo' and the plug-in flavours. Is there anyone out there using it? Have moved code out of the plug-in into my BootStrap.groovy, so the app will start.
#see jcatalog forum post
But still need to work around or resolve the error in all views.
See stack trace below:
org.codehaus.groovy.grails.web.pages.exceptions.GroovyPagesException: Error processing GroovyPageView: Error executing tag : java.lang.NullPointerException: Cannot set property 'common' on null object at /Users/saleram/.grails/1.2.1/projects/dataentry/plugins/grailsflow-core-1.0-rc1/grails-app/views/process/list.gsp:20
at java.lang.Thread.run(Thread.java:613)
Caused by: org.codehaus.groovy.grails.web.taglib.exceptions.GrailsTagException: Error executing tag : java.lang.NullPointerException: Cannot set property 'common' on null object at /Users/saleram/.grails/1.2.1/projects/dataentry/plugins/grailsflow-core-1.0-rc1/grails-app/views/process/list.gsp:20
at Users_saleram__grails_1_2_1_projects_dataentry_plugins_grailsflow_core_1_0_rc1_grails_app_views_process_list_gsp$_run_closure1.doCall(Users_saleram__grails_1_2_1_projects_dataentry_plugins_grailsflow_core_1_0_rc1_grails_app_views_process_list_gsp:27)
at Users_saleram__grails_1_2_1_projects_dataentry_plugins_grailsflow_core_1_0_rc1_grails_app_views_process_list_gsp$_run_closure1.doCall(Users_saleram__grails_1_2_1_projects_dataentry_plugins_grailsflow_core_1_0_rc1_grails_app_views_process_list_gsp)
at Users_saleram__grails_1_2_1_projects_dataentry_plugins_grailsflow_core_1_0_rc1_grails_app_views_process_list_gsp.run(Users_saleram__grails_1_2_1_projects_dataentry_plugins_grailsflow_core_1_0_rc1_grails_app_views_process_list_gsp:41)
... 1 more
Caused by: org.codehaus.groovy.runtime.InvokerInvocationException: java.lang.NullPointerException: Cannot set property 'common' on null object
... 4 more
Caused by: java.lang.NullPointerException: Cannot set property 'common' on null object
at GrailsflowI18nTagLib$_closure1.doCall(GrailsflowI18nTagLib.groovy:30)
... 4 more
The error is because it is unable to load the resource bundles for the messages. I moved them out into the default messages.properties file and modified the GSP's accordingly. Now the application starts fine and I can access the pages fine but there are still some errors as below..
Caused by: org.springframework.scheduling.quartz.JobMethodInvocationFailedException: Invocation of method 'execute' on target class [class NodeActivatorJob] failed; nested exception is groovy.lang.MissingPropertyException: No such property: updateProcessService for class: ProcessManagerService
at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:273)
at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
... 1 more
Caused by: groovy.lang.MissingPropertyException: No such property: updateProcessService for class: ProcessManagerService
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:49)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassGetPropertySite.getProperty(PogoMetaClassGetPropertySite.java:50)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:241)
at ProcessManagerService.sendEvent(ProcessManagerService.groovy:359)
at ProcessManagerService$sendEvent$0.callCurrent(Unknown Source)
at ProcessManagerService.sendEvent(ProcessManagerService.groovy:279)
at ProcessManagerService$$FastClassByCGLIB$$b8eb8e77.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:688)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:621)
at ProcessManagerService$$EnhancerByCGLIB$$8e9fc43f.sendEvent(<generated>)
Has anyone been able to setup the demo fine?

Categories