Problem with Stateful EJB
violon Dec 12, 2006 4:23 AMI 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.