2 Replies Latest reply on Feb 10, 2015 4:25 PM by sugarcane

    how to have visibroker classes loaded while using ejb

    sujeetr

      ejb subsystem seems to use (through dependencies) jacorb.

      Having a ejb application use visibroker libraries for corba causes exceptions in class-loading as below:

       

      Error initialising the Orb on server

      myserver:org.omg.CORBA.INITIALIZE: java.lang.NoSuchMethodError: org.omg.CosTime.TIOHelper.addClientObjectWrapperClass(Lorg/omg/CORBA/ORB;Ljava/lang/Class;)V

       

      The jdk ORB init code (rt.jar) looks at property org.omg.CORBA.ORBSingletonClass.

      This property has been set in jvm options for the corresponding server-group's jvm definition.

       

      After setting this property to visibroker's implementation, still it seems jacorb implementation is picked up

      and the classes which the application expects are not available.

       

      Is it mandatory to use jacorb while using JBoss?

      How can this be worked around?

        • 1. Re: how to have visibroker classes loaded while using ejb
          sujeetr

          looking further,

           

          both jacorb and visibroker have org.omg spec classes inside them, while visibroker has got the method org.omg.CosTime.TIOHelper.addClientObjectWrapperClass(Lorg/omg/CORBA/ORB;Ljava/lang/Class;) jacorb does not have.

          jacorb classes are very low in the module hierarchy impacting rmi, ejb, jts.

           

          The org.omg.api module exports org.omg spec classes using jacorb's org.omg spec classes, so tried replacing this with a new visibroker module in layers/base and using this one in org.omg.api - this also did not work as it seems rmi module was using some classes from jacorbs's org.omg directly, resulting in the exception below (only required lines kept)

           

          [Server:server-one] 13:50:38,339 WARN  [org.jboss.modules] (ServerService Thread Pool -- 51) Failed to define class javax.rmi.CORBA.Tie in Module "javax.rmi.api:main" from local module loader @99ef35 (finder: local module finder @27aaf0 (roots: /sujeet/jboss/modules,/sujeet/jboss/modules/system/layers/base)): java.lang.LinkageError: Failed to link javax/rmi/CORBA/Tie (Module "javax.rmi.api:main" from local module loader @99ef35 (finder: local module finder @27aaf0 (roots: /sujeet/jboss/modules,/sujeet/jboss/modules/system/layers/base)))

          ---------------------

          --------------------

          [Server:server-one] at org.jboss.threads.JBossThread.run(JBossThread.java:122) [jboss-threads-2.1.0.Final-redhat-1.jar:2.1.0.Final-redhat-1]

          [Server:server-one] Caused by: java.lang.NoClassDefFoundError: org/omg/CORBA/portable/InvokeHandler

          [Server:server-one] at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.7.0_51]

          [Server:server-one] at java.lang.ClassLoader.defineClass(ClassLoader.java:800) [rt.jar:1.7.0_51]

          [Server:server-one] at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:344) [jboss-modules.jar:1.2.0.Final-redhat-1]

          [Server:server-one] at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:422) [jboss-modules.jar:1.2.0.Final-redhat-1]

          [Server:server-one] ... 20 more

          • 2. Re: how to have visibroker classes loaded while using ejb
            sugarcane

            I have a web application using Visibroker deployed in JBoss EAP 6.3 in windows 7. I set the JAVA options in the standalone.conf.bat to use Visibroker class (e.g.
            set "JAVA_OPTS=%JAVA_OPTS% -Dorg.omg.CORBA.ORBClass=com.inprise.vbroker.orb.ORB"

            set "JAVA_OPTS=%JAVA_OPTS% -Dorg.omg.CORBA.ORBSingletonClass=com.inprise.vbroker.orb.ORBSingleton"

            set "JAVA_OPTS=%JAVA_OPTS% -Djavax.rmi.CORBA.PortableRemoteObjectClass=com.inprise.vbroker.rmi.CORBA.PortableRemoteObjectImpl"

            set "JAVA_OPTS=%JAVA_OPTS% -Djavax.rmi.CORBA.StubClass=com.inprise.vbroker.rmi.CORBA.StubImpl"

            set "JAVA_OPTS=%JAVA_OPTS% -Djavax.rmi.CORBA.UtilClass=com.inprise.vbroker.rmi.CORBA.UtilImpl") and could not solve the problem. I still get the similar error as below. Is there a solution for that?

             

            16:08:25,381 INFO  [stdout] (http-/127.0.0.1:8080-1) { NULL, 2, 2/10/15 4:08:25 PM EST }

            16:08:25,397 INFO  [stdout] (http-/127.0.0.1:8080-1) Intialization of orb or rootpoa failedorg.omg.CORBA.INITIALIZE: java.lang.NoSuchMethodError: org.omg.CosTime.TIOHelper.addClientObjectWrapperClass(Lorg/omg/CORBA/ORB;Ljava/lang/Class;)V

            16:08:25,399 ERROR [stderr] (http-/127.0.0.1:8080-1) org.omg.CORBA.INITIALIZE: java.lang.NoSuchMethodError: org.omg.CosTime.TIOHelper.addClientObjectWrapperClass(Lorg/omg/CORBA/ORB;Ljava/lang/Class;)V

            16:08:25,399 ERROR [stderr] (http-/127.0.0.1:8080-1)  at com.inprise.vbroker.orb.ORB.cleanup(Unknown Source)

            16:08:25,399 ERROR [stderr] (http-/127.0.0.1:8080-1)  at com.inprise.vbroker.orb.ORB.set_parameters(Unknown Source)

            16:08:25,400 ERROR [stderr] (http-/127.0.0.1:8080-1)  at org.omg.CORBA.ORB.init(ORB.java:62)