Problemas com EJB de sessão Stateful

Galera… belezA? Fiz uma aplicação simples com EJB 3.0 usando Stateless, funcionou perfeitamente… só que ao passar para Stateful, apenas mudando para @Stateful, gera a exceção abaixo…

javax.naming.NamingException: Could not dereference object [Root exception is java.lang.reflect.UndeclaredThrowableException]
	at org.jnp.interfaces.NamingContext.getObjectInstanceWrapFailure(NamingContext.java:1135)
	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:690)
	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:572)
	at javax.naming.InitialContext.lookup(Unknown Source)
	at main.ClientMain.main(ClientMain.java:14)
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(Unknown Source)
	at org.jnp.interfaces.NamingContext.getObjectInstance(NamingContext.java:1110)
	at org.jnp.interfaces.NamingContext.getObjectInstanceWrapFailure(NamingContext.java:1127)
	... 4 more
Caused by: java.lang.ClassNotFoundException: [Lorg.jboss.aop.advice.Interceptor;
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	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(Unknown Source)
	at java.io.ObjectInputStream.readClassDesc(Unknown Source)
	at java.io.ObjectInputStream.readArray(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:122)
	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:55)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
	at org.jboss.aspects.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:48)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
	at org.jboss.aspects.remoting.PojiProxy.invoke(PojiProxy.java:61)
	... 9 more

alguem pode ajudar?

Seguem os fontes:

Remote

package action.bean;

import java.rmi.RemoteException;

import javax.ejb.Remote;

@Remote
public interface CalcRemote {
	public void setValores(Double arg1,Double arg2) throws RemoteException;
    public Double soma() throws RemoteException;
}

Bean

package action.bean;

import java.rmi.RemoteException;

import javax.ejb.Stateful;
import javax.ejb.Stateless;


@Stateful
public class CalcBeanTeste implements CalcRemote {
	
	private Double arg1;
	private Double arg2;
	
	public void setValores(Double arg1,Double arg2) throws RemoteException {
		this.arg1 = arg1;
		this.arg2 = arg2;
	}
	
	public Double soma() throws RemoteException {
		return arg1 + arg2;
	}
}

Cliente

package main;

import java.rmi.RemoteException;

import javax.naming.Context;
import action.bean.CalcRemote;

public class ClientMain {
	
	public static void main(String args[]) {
		
		try {            
			Context jndiContext = getInitialContext();			
            Object ref = jndiContext.lookup("CalcBeanTeste/remote");            
            CalcRemote calc = (CalcRemote)ref;
			
            calc.setValores(1.1,2.2);
			System.out.println(calc.soma());
			calc.setValores(3.2,3.3);
			System.out.println(calc.soma());

        } catch (javax.naming.NamingException ne){
		    ne.printStackTrace(); 
 	    } catch (RemoteException ne){
	    ne.printStackTrace(); 
    	} 
    }

    public static Context getInitialContext() throws javax.naming.NamingException  {
        return new javax.naming.InitialContext();
    }

}

jndi.properties

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhost:1199

só lembrando que usando @Stateless, a aplicacao roda perfeitamente … e usando @Stateful nao funciona gerando a exceção apresentada acima…

Tente colocar o JAR jboss-aop-jdk50-client.jar que está JBOSS_HOME\client, no classpath da aplicação cliente…

JN

a aplicação servidora e a aplicação cliente estão dentro do mesmo projeto… somente separei os source folder … e esse jar já está no classpath

Vc. consegui resolver o problema…

pois estou com o mesmo pipino !!!

Qual é a versão do JBoss que vcs estão utilizando? Eu fiz um deste funfar hoje mesmo.

Estou usando o Jboss 4.0.5 GA.

[quote=seufagner]Qual a versão do JBoss que você está usando? Ha um problema de compatibilidade com o Java 6 em algumas versões devido à forma como o objeto é serializado, não conseguindo assim fazer o lookup.

[]s[/quote]

É bem possível, levando-se em conta que o EJB criado e persistido em algum momento, entre uma requisição e outra…

Qual a versão do JBoss que você está usando? Ha um problema de compatibilidade com o Java 6 em algumas versões devido à forma como o objeto é serializado, não conseguindo assim fazer o lookup.

[]s