2 Replies Latest reply on Dec 12, 2006 8:40 PM by changemylife

    Problem with Stateful EJB

    changemylife Newbie

      I got a problem when developed a simple stateful EJB3. Can you help me to solve this problem. Thanks a lot.

      This is remote interface :

      package examples.session.stateful;
      
      
      /**
      * The business interface - a plain Java interface with only
      * business methods.
      */
      
      public interface Count {
       /**
       * Increments the counter by 1
       */
       public int count();
       /**
       * Sets the counter to val
       * @param val
       */
       public void set(int val);
       /**
       * removes the counter
       */
       public void remove();
      
      }
      


      And this is Bean class :
      package examples.session.stateful;
      
      import javax.ejb.Remote;
      import javax.ejb.Remove;
      import javax.ejb.Stateful;
      
      @Stateful
      @Remote(Count.class)
      public class CountBean implements Count {
      
       /** The current counter is our conversational state. */
       private int val;
      
       /**
       * The count() business method.
       */
       public int count() {
       System.out.println("count()");
       return ++val;
       }
      
       /**
       * The set() business method.
       */
       public void set(int val) {
       this.val = val;
       System.out.println("set()");
       }
      
       /**
       * The remove method is annotated so that the container knows
       * it can remove the bean after this method returns.
       */
       @Remove
       public void remove() {
       System.out.println("remove()");
       }
      }
      


      And test client :
      package examples.test.stateful;
      
      import java.util.Properties;
      
      import javax.naming.Context;
      import javax.naming.InitialContext;
      
      import examples.session.stateful.Count;
      
      public class CountClient {
      
       /**
       * @param args
       */
       public static void main(String[] args) {
       // TODO Auto-generated method stub
       Properties properties = new Properties();
       properties.put("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
       properties.put("java.naming.factory.url.pkgs","=org.jboss.naming:org.jnp.interfaces");
       properties.put("java.naming.provider.url","localhost:1099");
      
       Context ctx;
       try {
       ctx = new InitialContext(properties);
       Count obj = (Count) ctx.lookup("CountBean/remote");
       System.out.println(obj);
       } catch (Exception e) {
       e.printStackTrace();
       }
       }
      
      }
      


      This is the problem :
      Exception in thread "main" java.lang.NoClassDefFoundError: Lorg/jboss/invocation/Invoker;
       at java.lang.Class.getDeclaredFields0(Native Method)
       at java.lang.Class.privateGetDeclaredFields(Unknown Source)
       at java.lang.Class.getDeclaredField(Unknown Source)
       at java.io.ObjectStreamClass.getDeclaredSUID(Unknown Source)
       at java.io.ObjectStreamClass.access$600(Unknown Source)
       at java.io.ObjectStreamClass$2.run(Unknown Source)
       at java.security.AccessController.doPrivileged(Native Method)
       at java.io.ObjectStreamClass.<init>(Unknown Source)
       at java.io.ObjectStreamClass.lookup(Unknown Source)
       at java.io.ObjectStreamClass.initNonProxy(Unknown Source)
       at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
       at java.io.ObjectInputStream.readClassDesc(Unknown Source)
       at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
       at java.io.ObjectInputStream.readObject0(Unknown Source)
       at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
       at java.io.ObjectInputStream.readSerialData(Unknown Source)
       at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
       at java.io.ObjectInputStream.readObject0(Unknown Source)
       at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
       at java.io.ObjectInputStream.readSerialData(Unknown Source)
       at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
       at java.io.ObjectInputStream.readObject0(Unknown Source)
       at java.io.ObjectInputStream.readObject(Unknown Source)
       at org.jboss.aop.joinpoint.InvocationResponse.readExternal(InvocationResponse.java:107)
       at java.io.ObjectInputStream.readExternalData(Unknown Source)
       at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
       at java.io.ObjectInputStream.readObject0(Unknown Source)
       at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
       at java.io.ObjectInputStream.readSerialData(Unknown Source)
       at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
       at java.io.ObjectInputStream.readObject0(Unknown Source)
       at java.io.ObjectInputStream.readObject(Unknown Source)
       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:41)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:88)
       at org.jboss.aspects.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:34)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:88)
       at org.jboss.aspects.remoting.PojiProxy.invoke(PojiProxy.java:46)
       at $Proxy0.createProxy(Unknown Source)
       at org.jboss.ejb3.JndiProxyFactory.getObjectInstance(JndiProxyFactory.java:52)
       at javax.naming.spi.NamingManager.getObjectInstance(Unknown Source)
       at org.jnp.interfaces.NamingContext.getObjectInstance(NamingContext.java:1125)
       at org.jnp.interfaces.NamingContext.getObjectInstanceWrapFailure(NamingContext.java:1142)
       at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:705)
       at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:587)
       at javax.naming.InitialContext.lookup(Unknown Source)
       at examples.test.stateful.CountClient.main(CountClient.java:25)
      


      please, help me as soon as possible.