12 Replies Latest reply on Jun 30, 2006 12:49 PM by Tom Elrod

    serialization exception with mustang

    Jens Elkner Apprentice

      I wanna test (and actually really wanna use) 1.6 with my EJB3 standalone clients. Unfortunately it seems to be impossible dueto a serialization problem:

      23:19:40,103 [Thread-4] ERROR (SocketClientInvoker.java:293) - Got marshalling exception, exiting
      java.lang.ClassNotFoundException: [Ljava.lang.String;
       at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
       at java.security.AccessController.doPrivileged(Native Method)
       at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
       at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
       at org.jboss.remoting.loading.RemotingClassLoader.loadClass(RemotingClassLoader.java:50)
       at org.jboss.remoting.loading.ObjectInputStreamWithClassLoader.resolveClass(ObjectInputStreamWithClassLoader.java:139)
       at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
       at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
       at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1624)
       at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
       at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
       at org.jboss.aop.joinpoint.InvocationResponse.readExternal(InvocationResponse.java:122)
       at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
       at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
       at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
       at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
       at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
       at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
       at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
       at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
       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.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.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:55)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       at org.jboss.aspects.security.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:55)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:65)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       at org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:102)
       at $Proxy0.hasRoles(Unknown Source)
       at foo.JbossLoginService.authenticate(JbossLoginService.java:69)
       at com.ehsbe.commons.gui.JxLoginDialog$LoginThread.run(JxLoginDialog.java:404)
      23:19:40,114 [Thread-4] ERROR (SocketClientInvoker.java:297) - Error loading classes from remote call result.
      ...


      The invoked EJB3 SLSB method is:
      public String[] hasRoles(String[] roleNames) { .... }

      Does this mean, that JBoss does not use Java serialization correctly and thus is incompatible with 1.6 ?

      BTW: Just did a test using the normal java.io.{Output|Input}Stream and there is no problem at all wrt. writing and reading on Object, which contains String[]. Tested all combinations wrt. obj write/read and 1.5/1.6 ... hmmm

      Any hints?