1 Reply Latest reply on Aug 14, 2012 8:20 AM by zekela104

    How do I find sun/misc/Unsafe?

    zekela104

      Hi,

       

      I am porting an existing JBoss 4.2.2 production corporate application to JBoss 7.1.1. Everything deploys and runs according to spec; however, I am unable to connect to WebLogic JMS queues.

       

      I started with the wl3thinclient.jar, unpacked it, and created a weblogic.jar and a bea.jar. I correspondingly created weblogic and com.bea modules and added them to MANIFEST.MF. When I deploy the application, I get the following

       

      INFO  [stdout] <Thu Aug 09 14:50:33 EDT 2012> <Error> <Kernel> <WL-000802> <ExecuteRequest failed
      INFO  [stdout]  java.lang.NoClassDefFoundError: weblogic/management/commandline/tools/AdminToolHelper.
      INFO  [stdout]      at weblogic.rjvm.http.HTTPClientJVMConnection.run(HTTPClientJVMConnection.java:258)
      INFO  [stdout]      at weblogic.work.ExecuteRequestAdapter.execute(ExecuteRequestAdapter.java:21)
      INFO  [stdout]      at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)
      INFO  [stdout]      at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)
      INFO  [stdout] >

       

      I then used the wlfullclient.jar, unpacked it, and created another set of weblogic.jar and bea.jar files. I then used these as the jar files for the weblogic and com.bea modules. When I deploy the application, I get the following

       

      INFO  [stdout] <Thu Aug 09 15:49:27 EDT 2012> <Error> <RJVM> <WL-000515> <execute failed

      INFO  [stdout]  java.lang.NoClassDefFoundError: sun/misc/Unsafe

      INFO  [stdout]  at weblogic.utils.io.ObjectStreamClass.getUnsafe(ObjectStreamClass.java:646)

      INFO  [stdout]  at weblogic.utils.io.ObjectStreamClass.<clinit>(ObjectStreamClass.java:57)

      INFO  [stdout]  at weblogic.utils.io.ChunkedObjectInputStream.readObjectFromPreDiabloPeer(ChunkedObjectInputStream.java:206)

      INFO  [stdout]  at weblogic.rjvm.ClusterInfoHelper.readClusterInfo(ClusterInfoHelper.java:30)

      INFO  [stdout]  at weblogic.rjvm.ConnectionManager.readClusterInfo(ConnectionManager.java:975)

      INFO  [stdout]  at weblogic.rjvm.ConnectionManagerClient.handleIdentifyResponse(ConnectionManagerClient.java:212)

      INFO  [stdout]  at weblogic.rjvm.ConnectionManager.dispatch(ConnectionManager.java:869)

      INFO  [stdout]  at weblogic.rjvm.MsgAbbrevJVMConnection.dispatch(MsgAbbrevJVMConnection.java:456)

      INFO  [stdout]  at weblogic.rjvm.http.HTTPClientJVMConnection.receiveAndDispatch(HTTPClientJVMConnection.java:378)

      INFO  [stdout]  at weblogic.rjvm.http.HTTPClientJVMConnection.run(HTTPClientJVMConnection.java:244)

      INFO  [stdout]  at weblogic.work.ExecuteRequestAdapter.execute(ExecuteRequestAdapter.java:21)

      INFO  [stdout]  at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)

      INFO  [stdout]  at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)

      INFO  [stdout] >

       

      I determined that sun.misc.Unsafe is located rt.jar but am unclear as to why it's not loaded by the JBoss 7.1.1 class loader nor how to configure my application such that is loaded.

       

      I am not really sure what to do now and have spent several days chasing this down. Thank you in advance for all responses.

        • 1. Re: How do I find sun/misc/Unsafe?
          zekela104

          The solution is as follows.

           

          Use the WebLogic full client jar file, wlfullclient.jar, and deploy it as-is as a JBoss 7.1.1 module.

           

          Create the corresponding %JBOSS_HOME%\modules\wlfullclient\main\module.xml file.

           

          <?xml version="1.0" encoding="UTF-8"?>
          <module xmlns="urn:jboss:module:1.0" name="wlfullclient">
                  <resources>
                          <resource-root path="wlfullclient.jar" />
                  </resources>
                  <dependencies>
                          <module name="org.omg.api" />
                          <module name="javax.api" />
                          <module name="sun.jdk" />
                  </dependencies>
          </module>