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 ?.
Make sure you are using the same version of virtual machines for all components.
This error is typically a jar file version conflict.
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 ?
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.
Answering your question; make an xml based call using webservices.
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.
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(...
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.
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]
I am facing the same problem. Did you find a solution for this? I fyou did, please share it here. This is really urgent!
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.