4 Replies Latest reply on May 26, 2007 9:07 AM by cupdike

    lookup of remote EntityQuery (from seam-gen) for Eclipse RCP

    cupdike

      I'm trying to remote access an EntityQuery subclass that I've converted to a SFSB. It was generated by seam-gen as a non-EJB subclass. I'm trying to use the EJB in a remote client app (Eclipse RCP). Currently, the lookup works but the bean won't cast properly due to some kind of serialVersionUID problem. I've tried many different workarounds related to assigning the serialVersionUID of the bean to either values in the error message, but it still fails (class snippets and stack trace given below). I'm wondering if this has something to do with Seam creating proxies for the bean.

      And am I taking the wrong approach here? Is there an easier way to do this? I hear rumors that RCP integration is in the plan, but I can't wait for that to happen (although it would be awesome to be able to reference Seam components in RCP instead of doing remote EJB lookup). Perhaps with some guidance, I could write some Seam code that surface the remote components in RCP (but I don't know where to start--any pointers welcome).

      TIA, Clark

      @Name("demoStatesList")
      @Stateful
      public class DemoStatesList extends EntityQuery implements DemoStatesListIntface, Serializable {
      
      
       private static final long serialVersionUID = -2164496320326661428L;
       ...
      <snip>
      --------------------------
      @Remote
      public interface DemoStatesListIntface {
      
       public abstract DemoStates getDemoStates();
      
      }
      --------------------------
      ######## doing lookup of: SeamGenTest2/DemoStatesList/remote
      20:33:31,564 ERROR [SocketClientInvoker] Got marshalling exception, exiting
      java.io.InvalidClassException: org.jboss.ejb3.stateful.StatefulRemoteProxy; local class incompatible: stream classdesc serialVersionUID = -2164496320326661428, local class serialVersionUID = -8874087830926007682
       at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:519)
       at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1546)
       at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1460)
       at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1693)
       at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
       at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1912)
       at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1836)
       at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1713)
       at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
       at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
       at org.jboss.aop.joinpoint.InvocationResponse.readExternal(InvocationResponse.java:107)
       at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1753)
       at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1711)
       at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
       at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1912)
       at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1836)
       at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1713)
       at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
       at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
       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:61)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
       at org.jboss.aspects.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:48)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
       at org.jboss.aspects.remoting.PojiProxy.invoke(PojiProxy.java:61)
       at $Proxy0.createProxy(Unknown Source)
       at org.jboss.ejb3.JndiProxyFactory.getObjectInstance(JndiProxyFactory.java:52)
       at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
       at org.jnp.interfaces.NamingContext.getObjectInstance(NamingContext.java:1131)
       at org.jnp.interfaces.NamingContext.getObjectInstanceWrapFailure(NamingContext.java:1148)
       at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:706)
       at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:588)
       at javax.naming.InitialContext.lookup(InitialContext.java:351)
       at edu.jhuapl.ermp.ServiceFactory.buildALocalFacade(ServiceFactory.java:129)
       at edu.jhuapl.ermp.ServiceFactory.getDemoStatesList(ServiceFactory.java:115)
       at edu.jhuapl.ermp.ServiceFactory.main(ServiceFactory.java:153)
      javax.naming.NamingException: Could not dereference object [Root exception is java.lang.reflect.UndeclaredThrowableException]
       at org.jnp.interfaces.NamingContext.getObjectInstanceWrapFailure(NamingContext.java:1156)
       at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:706)
       at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:588)
       at javax.naming.InitialContext.lookup(InitialContext.java:351)
       at edu.jhuapl.ermp.ServiceFactory.buildALocalFacade(ServiceFactory.java:129)
       at edu.jhuapl.ermp.ServiceFactory.getDemoStatesList(ServiceFactory.java:115)
       at edu.jhuapl.ermp.ServiceFactory.main(ServiceFactory.java:153)DemoStatesList not found
      
      Caused by: java.lang.reflect.UndeclaredThrowableException
       at $Proxy0.createProxy(Unknown Source)
       at org.jboss.ejb3.JndiProxyFactory.getObjectInstance(JndiProxyFactory.java:52)
       at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
       at org.jnp.interfaces.NamingContext.getObjectInstance(NamingContext.java:1131)
       at org.jnp.interfaces.NamingContext.getObjectInstanceWrapFailure(NamingContext.java:1148)
       ... 6 more
      Caused by: java.rmi.MarshalException: Failed to communicate. Problem during marshalling/unmarshalling; nested exception is:
       java.io.InvalidClassException: org.jboss.ejb3.stateful.StatefulRemoteProxy; local class incompatible: stream classdesc serialVersionUID = -2164496320326661428, local class serialVersionUID = -8874087830926007682
       at org.jboss.remoting.transport.socket.SocketClientInvoker.transport(SocketClientInvoker.java:306)
       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:61)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
       at org.jboss.aspects.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:48)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
       at org.jboss.aspects.remoting.PojiProxy.invoke(PojiProxy.java:61)
       ... 11 more
      Caused by: java.io.InvalidClassException: org.jboss.ejb3.stateful.StatefulRemoteProxy; local class incompatible: stream classdesc serialVersionUID = -2164496320326661428, local class serialVersionUID = -8874087830926007682
       at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:519)
       at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1546)
       at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1460)
       at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1693)
       at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
       at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1912)
       at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1836)
       at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1713)
       at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
       at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
       at org.jboss.aop.joinpoint.InvocationResponse.readExternal(InvocationResponse.java:107)
       at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1753)
       at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1711)
       at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
       at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1912)
       at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1836)
       at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1713)
       at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
       at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
       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:61)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
       at org.jboss.aspects.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:48)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:98)
       at org.jboss.aspects.remoting.PojiProxy.invoke(PojiProxy.java:61)
       at $Proxy0.createProxy(Unknown Source)
       at org.jboss.ejb3.JndiProxyFactory.getObjectInstance(JndiProxyFactory.java:52)
       at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
       at org.jnp.interfaces.NamingContext.getObjectInstance(NamingContext.java:1131)
       at org.jnp.interfaces.NamingContext.getObjectInstanceWrapFailure(NamingContext.java:1148)
       at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:706)
       at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:588)
       at javax.naming.InitialContext.lookup(InitialContext.java:351)
       at edu.jhuapl.ermp.ServiceFactory.buildALocalFacade(ServiceFactory.java:129)
       at edu.jhuapl.ermp.ServiceFactory.getDemoStatesList(ServiceFactory.java:115)
       at edu.jhuapl.ermp.ServiceFactory.main(ServiceFactory.java:153)
       at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:73)
       ... 15 more
      Exception in thread "main" java.lang.NullPointerException
       at edu.jhuapl.ermp.ServiceFactory.main(ServiceFactory.java:154)