10 Replies Latest reply on Sep 1, 2006 2:39 AM by lupson

    Invoking Ejb of Jboss 3.2.3 from JBoss 4.0.2

    mohan_sm

      Hi ,
      I am trying to invoke an ejb which is deployed in Jboss3.2.3, from Jboss 4.0.2 ( EJB is the client here as well) . During this i am getting an exception

      18:10:46,604 INFO [STDOUT] EXCEPTION in <IPServiceMgrBean::invokeIPManager>
      ...... <Exception Message> : null -
      javax.naming.CommunicationException [Root exception is java.io.InvalidClassException: org.jboss.util.id.GUID; local class incompatible: stream classdesc serialVersionUID = 6926421946503004889, local class serialVersionUID = 3289509836244263718]
      18:10:46,604 INFO [STDOUT] javax.naming.CommunicationException [Root exception is java.io.InvalidClassException: org.jboss.util.id.GUID; local class incompatible: stream classdesc serialVersionUID = 6926421946503004889, local class serialVersionUID = 3289509836244263718]
      18:10:46,604 INFO [STDOUT] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:707)
      18:10:46,604 INFO [STDOUT] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:572)
      18:10:46,604 INFO [STDOUT] at javax.naming.InitialContext.lookup(InitialContext.java:347)
      18:10:46,624 INFO [STDOUT] at com.pindarset.csda.imaging.ipservice.sb_ipservice.IPServiceMgrBean.getHome(IPServiceMgrBean.java:791)
      18:10:46,624 INFO [STDOUT] at com.pindarset.csda.imaging.ipservice.sb_ipservice.IPServiceMgrBean.getRequestReceiver(IPServiceMgrBean.java:768)
      18:10:46,624 INFO [STDOUT] at com.pindarset.csda.imaging.ipservice.sb_ipservice.IPServiceMgrBean.invokeIPManager(IPServiceMgrBean.java:543)
      18:10:46,624 INFO [STDOUT] at com.pindarset.csda.imaging.ipservice.sb_ipservice.IPServiceMgrBean.requestIP(IPServiceMgrBean.java:489)
      18:10:46,624 INFO [STDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      18:10:46,624 INFO [STDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      18:10:46,624 INFO [STDOUT] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      18:10:46,644 INFO [STDOUT] at java.lang.reflect.Method.invoke(Method.java:324)
      18:10:46,654 INFO [STDOUT] at org.jboss.invocation.Invocation.performCall(Invocation.java:345)
      18:10:46,654 INFO [STDOUT] at org.jboss.ejb.StatefulSessionContainer$ContainerInterceptor.invoke(StatefulSessionContainer.java:584)
      18:10:46,654 INFO [STDOUT] at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:139)
      18:10:46,654 INFO [STDOUT] at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185)
      18:10:46,654 INFO [STDOUT] at org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor.invoke(StatefulSessionInstanceInterceptor.java:297)
      18:10:46,654 INFO [STDOUT] at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48)
      18:10:46,674 INFO [STDOUT] at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:105)
      18:10:46,674 INFO [STDOUT] at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:389)


      Can anyone suggest me some workaround for this ?.

      Regards,
      S. Mohan

        • 1. Re: Invoking Ejb of Jboss 3.2.3 from JBoss 4.0.2
          casaben

          Make sure you are using the same version of virtual machines for all components.
          This error is typically a jar file version conflict.

          • 2. Re: Invoking Ejb of Jboss 3.2.3 from JBoss 4.0.2
            conradh

            Hi
            I have similar error. I tried to obtain UserTransaction from JBoss-3.2.6 while being in Jboss-4.0.2. I got:
            javax.naming.CommunicationException [Root exception is java.io.InvalidClassException: org.jboss.util.id.GUID; local class incompatible: stream classdesc serialVersionUID = 6926421946503004889, local class serialVersionUID = 3289509836244263718].

            JVM is the same - I''v tested on the same machine. (WinXP JDK 1.5)

            Do you have any suggestions how to workaround this problem ?

            Regards
            Konrad

            • 3. Re: Invoking Ejb of Jboss 3.2.3 from JBoss 4.0.2
              kurt

              These is a class called org.jboss.util.id.GUID which contains static final long serialVersionUID = 3289509836244263718L in 4.0.2 and it is 6926421946503004889 in 3.2.6. This class can be found in the followaing jars:
              lib/jboss-common.jar, client/jbossall-client.jar, client/jboss-common-client.jar, server/all/deploy/management/console-mgr.sar/web-console.war/applet.jar, server/default/deploy/management/console-mgr.sar/web-console.war/applet.jar

              During (de)serialization of an object this class is used (rmi, jms), and it will complain and refuse. Looks to me that peaceful coexistence of 3.2.6 and 4.0.2 is pretty well broken by jboss. This particular issue is NOT JVM related. I hope JBoss had very good reasons to break this kind of backwards compatibility, it is causing us quite some grief.

              • 4. Re: Invoking Ejb of Jboss 3.2.3 from JBoss 4.0.2
                kurt

                Answering your question; make an xml based call using webservices.

                • 5. Re: Invoking Ejb of Jboss 3.2.3 from JBoss 4.0.2
                  hughallen

                  Setting up a new production JBoss server using JBoss 4.02 and trying to get my web app and J2EE app client to run. My Test server is running 3.2.5.

                  The web App runs fine on both servers, since there is no serialization.

                  However, when I run the J2EE App Client on the 4.02 server, I get the same GUID error shown below. It times out on the initial JNDI lookup.

                  WHATEVER HAPPENED TO UPWARD COMPATIBILITY?

                  So what is the solution?
                  - Do I need to upgrade BOTH servers? This is the tail wagging the dog.
                  - TWO separate Build setups - 3.2 and 4.02?

                  Are the serialized data streams actually imcompatible between the releases?

                  Can't find much info on this subject doing searches.

                  This is unexpected and, unless I am missing something, unreasonable.

                  I gather it is NOT a JVM issue, but purely a JBoss issue.

                  • 6. Re: Invoking Ejb of Jboss 3.2.3 from JBoss 4.0.2
                    rstribrn

                    We are also using JBoss 3.2.4 in our production environment for a one application, and trying to migrate another application from WLS to JBoss 4.0.3.

                    It also fails during the InitialContext creation...

                    I also tried to run simple test client will 3.2.5 and 4.0.3 libraries and it worked in the first case, not in the second.

                    Now we are considering to migrace not to JBoss but to higher WLS version instead....:c(

                    Pure JBoss :c(...

                    • 7. Re: Invoking Ejb of Jboss 3.2.3 from JBoss 4.0.2
                      esoyke

                      I had the very same error when trying to do a lookup from my code running on Tomcat. I was running Tomcat on my local PC along with JBoss 4.0.3 and it worked fine. When I tried looking up a JBoss instance on another machine though I got this error. Turns out I had older jboss libraries in Tomcat's common/libs that had to be upgraded to the latest versions to serialize properly.

                      • 8. Re: Invoking Ejb of Jboss 3.2.3 from JBoss 4.0.2
                        jjtang

                        I'm using latest jboss4 calling an ejb on 3.2.7, and I'm still getting the serialization problem.

                        java.io.InvalidClassException: org.jboss.util.id.GUID; local class incompatible: stream classdesc serialVersionUID = 6926421946503004889, local class serialVersionUID = 3289509836244263718]

                        Any help?

                        • 9. Re: Invoking Ejb of Jboss 3.2.3 from JBoss 4.0.2
                          ganeshmb

                          I am facing the same problem. Did you find a solution for this? I fyou did, please share it here. This is really urgent!

                          • 10. Re: Invoking Ejb of Jboss 3.2.3 from JBoss 4.0.2
                            lupson

                            I think I found the solution in another thread here at the JBoss forums, but basically my solution for JNDI-lookups and RMI-calls between JBoss 4.0.4.GA (client) and JBoss 3.2.6 (server) was:

                            1. Install JBoss 3.2.8 instead of 3.2.6.
                            2. Run JBoss 3.2.8 with: "sh run.sh -Dorg.jboss.j2ee.Serialization -c all"

                            Now the (example) code below works fine.

                            MyEjbRemoteHome home = MyEjbRemoteHome PortableRemoteObject.narrow( _context.lookup( "MyEjb"), MyEjbRemoteHome
                            MyEjbRemote = home.create();
                            remote.myMethod(...);
                            


                            However - I do not know wether the -Dorg.jboss.j2ee.Serialization breaks > 3.2.7 interop or not.