3 Replies Latest reply on Nov 7, 2008 1:35 PM by gturner

    JBoss 4.0.4.GA and 4.2.1.GA EJB interoperability

    gturner

      I'm testing whether we can mix JBoss 4.0.4.GA and 4.2.1.GA in our environment while performing upgrades to 132+ hosts!

      We have an old EJB 2.1 Session Bean that works fine if the EJB is deployed on a 4.0.4.GA server and accesses by a client on 4.2.1.GA, however if we deploy the EJB on 4.2.1.GA and test whether a client on 4.0.4.GA can access the EJB, Home->create fails and the following stacktraces occur:

      Client exception (on 4.0.4.GA):

      2007-10-16 15:07:29,846 ERROR [org.jboss.remoting.transport.socket.SocketClientInvoker] (http-0.0.0.0-8080-2:) Got marshalling exception, exiting
      java.io.OptionalDataException
       at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1316)
       at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
       at org.jboss.remoting.serialization.impl.java.JavaSerializationManager.receiveObject(JavaSerializationManager.java:128)
       at org.jboss.remoting.marshal.serializable.SerializableUnMarshaller.read(SerializableUnMarshaller.java:66)
       at org.jboss.invocation.unified.marshall.InvocationUnMarshaller.read(InvocationUnMarshaller.java:48)
       at org.jboss.remoting.transport.socket.SocketClientInvoker.transport(SocketClientInvoker.java:279)
       at org.jboss.remoting.RemoteClientInvoker.invoke(RemoteClientInvoker.java:143)
       at org.jboss.remoting.Client.invoke(Client.java:525)
       at org.jboss.remoting.Client.invoke(Client.java:488)
       at org.jboss.invocation.unified.interfaces.UnifiedInvokerProxy.invoke(UnifiedInvokerProxy.java:175)
       at org.jboss.invocation.InvokerInterceptor.invokeInvoker(InvokerInterceptor.java:331)
       at org.jboss.invocation.MarshallingInvokerInterceptor.invoke(MarshallingInvokerInterceptor.java:63)
       at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:61)
       at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:70)
       at org.jboss.proxy.ejb.HomeInterceptor.invoke(HomeInterceptor.java:184)
       at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:100)
       at $Proxy287.create(Unknown Source)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at com.xo.nextgen.connector.ejb.SessionBeanConnection.getRemote(SessionBeanConnection.java:62)
      


      Server exception (4.2.1.GA):
      2007-10-16 15:07:29,843 ERROR [org.jboss.remoting.transport.socket.ServerThread] (WorkerThread#0[10.88.24.173:36532]:) Worker thread initialization failure java.io.EOFException
       at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:526)
       at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:369)
       at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:165)
      


      Is there some work-around to get these two versions of JBoss to interoperate?