1 Reply Latest reply on Jan 27, 2010 4:20 AM by Michael Martinsen

    EJB 2.1: Backwards compatibility 4.0.3 to 5.0.1?

    Michael Martinsen Newbie

      Hi JBoss users

       

      I have an issue with a client application built to call EJB 2.1 beans on a JBoss 4.0.3.

      I would like to extend this client and - also - have it call EJB3 beans on a JBoss 5.0.1.

       

      I would have expected JBoss 5.0.1 to be backwards compatible and hence be able to have a client (using the jbossall-client.jar taken from the client folder from the JBoss 4.0.3 server distribution) calling the JBoss 5.0.1 server.

       

      However i get this exception when trying to do so:

       

      java.lang.ClassNotFoundException: org.jboss.proxy.ejb.SecurityContextInterceptor (no security manager: RMI class loader disabled)
      1> 2010.01.27 8:59:20 >      at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:371)
      1> 2010.01.27 8:59:20 >      at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:165)
      1> 2010.01.27 8:59:20 >      at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:620)
      1> 2010.01.27 8:59:20 >      at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:247)
      1> 2010.01.27 8:59:20 >      at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:197)
      1> 2010.01.27 8:59:20 >      at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1538)
      1> 2010.01.27 8:59:20 >      at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1460)
      1> 2010.01.27 8:59:20 >      at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1693)
      1> 2010.01.27 8:59:20 >      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
      1> 2010.01.27 8:59:20 >      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
      1> 2010.01.27 8:59:20 >      at org.jboss.proxy.Interceptor.readExternal(Interceptor.java:66)
      1> 2010.01.27 8:59:20 >      at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1753)
      1> 2010.01.27 8:59:20 >      at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1711)
      1> 2010.01.27 8:59:20 >      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
      1> 2010.01.27 8:59:20 >      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
      1> 2010.01.27 8:59:20 >      at org.jboss.proxy.Interceptor.readExternal(Interceptor.java:66)
      1> 2010.01.27 8:59:20 >      at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1753)
      1> 2010.01.27 8:59:20 >      at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1711)
      1> 2010.01.27 8:59:20 >      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
      1> 2010.01.27 8:59:20 >      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
      1> 2010.01.27 8:59:20 >      at org.jboss.proxy.ClientContainer.readExternal(ClientContainer.java:142)
      1> 2010.01.27 8:59:20 >      at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1753)
      1> 2010.01.27 8:59:20 >      at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1711)
      1> 2010.01.27 8:59:20 >      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
      1> 2010.01.27 8:59:20 >      at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1912)
      1> 2010.01.27 8:59:20 >      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1836)
      1> 2010.01.27 8:59:20 >      at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1713)
      1> 2010.01.27 8:59:20 >      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
      1> 2010.01.27 8:59:20 >      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
      1> 2010.01.27 8:59:20 >      at java.rmi.MarshalledObject.get(MarshalledObject.java:135)
      1> 2010.01.27 8:59:20 >      at org.jnp.interfaces.MarshalledValuePair.get(MarshalledValuePair.java:57)
      1> 2010.01.27 8:59:20 >      at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:637)

       

      The class org.jboss.proxy.ejb.SecurityContextInterceptor is NOT present in the jbossall-client.jar from the 4.0.3 distribution, but it is in the jbossall-client.jar from the JBoss 5.0.1.

       

      I would prefer not to replace the 4.0.3 jbossall-client.jar with the one from the JBoss 5.0.1.

       

      To me it seems as if the JBoss 5.0.1 is NOT backwards compatible with respect to EJB 2.1.

       

      Any thoughts or suggestions?

       

      Thanks in advance.

       

      /Michael