1 Reply Latest reply on Apr 4, 2012 7:57 AM by ts_dk

    UnsatisfiedLinkError: Native Library ...so already loaded in another classloader

    ts_dk

      Hello

       

      I'm using JBoss AS 7.1.0.Final and is developing under Eclipse Indigo.

       

      I have multiple jar projects, a utility project and a war project gathered under a .ear project.

      I am using the jpathwatch (http://jpathwatch.wordpress.com/) lib and this is added to the .ear project to be used on of the jar project.

      I'm having some problems with redeploying the .ear.

       

      The structure is like this:

      - CM_project.ear

         |-- /lib

         |    |-- jpathwatch-0-95.jar

         |-- /modules

         |    |-- ContentWatcher.jar (Uses the jpathwatch lib)

        |    |-- Second.jar

        |    |-- Third.jar

       

      Deploying works and the application is working as expected. Good!

      Undeploying is also working.

      Deploying again -> Error! Exception appended.

       

      How am I supposed to deploy the jpathwatch?

      Should I unload it at predestroy somehow?

       

      Should I create a module for the jpathwatch instead?

      I think this could be the way out, but I tried and it didn't find some of the classes in jpathwatch

      -> Could someone confirm that this is right way of referening a native library?

       

      Please help

       

      Thomas

       

      11:55:33,528 ERROR [stderr] (MSC service thread 1-2) java.lang.UnsatisfiedLinkError: Native Library /tmp/jpathwatch-nativelib-v-0-95-libjpathwatch-native.so already loaded in another classloader

      11:55:33,532 ERROR [stderr] (MSC service thread 1-2)           at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1715)

      11:55:33,538 ERROR [stderr] (MSC service thread 1-2)           at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1646)

      11:55:33,542 ERROR [stderr] (MSC service thread 1-2)           at java.lang.Runtime.load0(Runtime.java:787)

      11:55:33,542 ERROR [stderr] (MSC service thread 1-2)           at java.lang.System.load(System.java:1022)

      11:55:33,544 ERROR [stderr] (MSC service thread 1-2)           at name.pachler.nio.file.impl.NativeLibLoader.extractAndLoadLibrary(NativeLibLoader.java:407)

      11:55:33,545 ERROR [stderr] (MSC service thread 1-2)           at name.pachler.nio.file.impl.NativeLibLoader.loadLibrary(NativeLibLoader.java:257)

      11:55:33,551 ERROR [stderr] (MSC service thread 1-2)           at name.pachler.nio.file.impl.LinuxPathWatchService.<clinit>(LinuxPathWatchService.java:105)

      11:55:33,555 ERROR [stderr] (MSC service thread 1-2)           at name.pachler.nio.file.ext.Bootstrapper.newWatchService(Bootstrapper.java:80)

      11:55:33,556 ERROR [stderr] (MSC service thread 1-2)           at name.pachler.nio.file.FileSystems$1.newWatchService(FileSystems.java:40)

      ...

      11:55:33,568 ERROR [stderr] (MSC service thread 1-2)           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

      11:55:33,577 ERROR [stderr] (MSC service thread 1-2)           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

      11:55:33,578 ERROR [stderr] (MSC service thread 1-2)           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

      11:55:33,579 ERROR [stderr] (MSC service thread 1-2)           at java.lang.reflect.Method.invoke(Method.java:616)

      11:55:33,582 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.as.ee.component.ManagedReferenceLifecycleMethodInterceptorFactory$ManagedReferenceLifecycleMethodInterceptor.processInvocation(ManagedReferenceLifecycleMethodInterceptorFactory.java:130)

      11:55:33,584 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

      11:55:33,590 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53)

      11:55:33,591 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

      11:55:33,598 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.as.ee.component.ManagedReferenceFieldInjectionInterceptorFactory$ManagedReferenceFieldInjectionInterceptor.processInvocation(ManagedReferenceFieldInjectionInterceptorFactory.java:112)

      11:55:33,599 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

      11:55:33,600 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.as.ee.component.ManagedReferenceFieldInjectionInterceptorFactory$ManagedReferenceFieldInjectionInterceptor.processInvocation(ManagedReferenceFieldInjectionInterceptorFactory.java:112)

      11:55:33,608 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

      11:55:33,613 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53)

      11:55:33,614 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

      11:55:33,615 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.as.ee.component.ManagedReferenceInterceptorFactory$ManagedReferenceInterceptor.processInvocation(ManagedReferenceInterceptorFactory.java:95)

      11:55:33,617 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

      11:55:33,622 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53)

      11:55:33,634 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

      11:55:33,635 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)

      11:55:33,645 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

      11:55:33,653 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:228)

      11:55:33,659 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.as.ejb3.tx.CMTTxInterceptor.requiresNew(CMTTxInterceptor.java:333)

      11:55:33,660 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.as.ejb3.tx.SingletonLifecycleCMTTxInterceptor.processInvocation(SingletonLifecycleCMTTxInterceptor.java:56)

      11:55:33,662 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

      11:55:33,663 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)

      11:55:33,674 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

      11:55:33,675 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45)

      11:55:33,676 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

      11:55:33,677 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)

      11:55:33,678 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:161)

      11:55:33,690 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.as.ee.component.BasicComponent.createInstance(BasicComponent.java:85)

      11:55:33,691 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.as.ejb3.component.singleton.SingletonComponent.getComponentInstance(SingletonComponent.java:113)

      11:55:33,699 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.as.ejb3.component.singleton.SingletonComponent.start(SingletonComponent.java:127)

      11:55:33,703 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.as.ee.component.ComponentStartService.start(ComponentStartService.java:44)

      11:55:33,710 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)

      11:55:33,716 ERROR [stderr] (MSC service thread 1-2)           at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)

      11:55:33,724 ERROR [stderr] (MSC service thread 1-2)           at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)

      11:55:33,725 ERROR [stderr] (MSC service thread 1-2)           at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)

      11:55:33,726 ERROR [stderr] (MSC service thread 1-2)           at java.lang.Thread.run(Thread.java:679)

       


        • 1. Re: UnsatisfiedLinkError: Native Library ...so already loaded in another classloader
          ts_dk

          Hello again

           

          Should I create a module for the jpathwatch instead?

          I think this could be the way out, but I tried and it didn't find some of the classes in jpathwatch

          -> Could someone confirm that this is right way of referening a native library?

          Just cleared my head and give it try with the module way again. And now it works!

           

          To others (and myself):

          1. Make the directory path in the JBoss modules folder:

               cd $JBOSS_HOME/modules

               mkdir -p name/pachler/nio/file/main

               cd !$

           

          2. Copy the library to the folder

               cp path/to/lib/jpathwatch-0-95.jar .

           

          3. Create the module.xml

               vi module.xml

               Add the following to the module:

          <?xml version="1.0" encoding="UTF-8"?>

          <module xmlns="urn:jboss:module:1.1" name="name.pachler.nio.file">

              <resources>

                  <resource-root path="jpathwatch-0-95.jar"/>

              </resources>

              <dependencies>

              </dependencies>

          </module>

           

          Now remove the reference under the ear and just put it in the build path of the .jar project which needs it.

           

          Regards

          Thomas