Duvida EJb..acesso Local...java.lang.ClassNotFoundException: org.jboss.ejb.plugins.local.LocalHomePr

0 respostas
P

Caros,

pois fiz o teste chamando via Remoto deu certo
Agora queria fazer teste rodando via local
uma duvida como chamar o metodo via Local na classe main
está certo ??? pois está dando erro ??? result = (CalculadoraLocalHome) getContext().lookup("CalculadoraLocal");

está me dando erro

Exception in thread "main" javax.naming.CommunicationException [Root exception is java.lang.ClassNotFoundException: org.jboss.ejb.plugins.local.LocalHomeProxy (no security manager: RMI class loader disabled)]
	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:786)
	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627)
	at javax.naming.InitialContext.lookup(InitialContext.java:392)
	at teste.TesteCalculadora.getHome1(TesteCalculadora.java:33)
	at teste.TesteCalculadora.imprime(TesteCalculadora.java:40)
	at teste.TesteCalculadora.main(TesteCalculadora.java:45)
Caused by: java.lang.ClassNotFoundException: org.jboss.ejb.plugins.local.LocalHomeProxy (no security manager: RMI class loader disabled)

onde estou errando

--main
public class TesteCalculadora {
	private InitialContext getContext() throws NamingException {
		Hashtable props = new Hashtable();
		props.put(InitialContext.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");
		props.put(InitialContext.PROVIDER_URL, "jnp://127.0.0.1:1099");
		InitialContext initialContext = new InitialContext(props);
		return initialContext;
	}
	
	private CalculadoraLocalHome getHome1() throws NamingException, ClassNotFoundException, InstantiationException, IllegalAccessException {
		CalculadoraLocalHome result;
		result = (CalculadoraLocalHome) getContext().lookup("CalculadoraLocal");
		return result; 
    	
	}
	public void imprime() throws ClassNotFoundException, InstantiationException, IllegalAccessException, CreateException, NamingException, RemoteException {
		Calculadora cal =  (Calculadora) getHome1().create();
		System.out.println(cal.soma( 2008 , -1968));
		}
	public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, RemoteException, CreateException, NamingException {
		TesteCalculadora teste = new TesteCalculadora();
		teste.imprime();
	}
}
--
package aplicacao;

import java.rmi.RemoteException;

import javax.ejb.EJBObject;

public interface Calculadora extends EJBObject {
	public Integer soma(Integer v1, Integer v2) throws RemoteException;
}
--
public class CalculadoraBean implements SessionBean {

	public CalculadoraBean() {
		// TODO Auto-generated constructor stub
	}

	@Override
	public void ejbActivate() throws EJBException, RemoteException {
		// TODO Auto-generated method stub

	}

	@Override
	public void ejbPassivate() throws EJBException, RemoteException {
		// TODO Auto-generated method stub

	}

	@Override
	public void ejbRemove() throws EJBException, RemoteException {
		// TODO Auto-generated method stub

	}

	@Override
	public void setSessionContext(SessionContext arg0) throws EJBException,
			RemoteException {
		// TODO Auto-generated method stub

	}
	
	public void ejbCreate() throws CreateException{}
	
	public Integer soma(Integer v1, Integer v2 ){
		return v1+v2;
	}

}
--
import java.rmi.RemoteException;

import javax.ejb.CreateException;
import javax.ejb.EJBHome;


public interface CalculadoraHome extends EJBHome {
	public Calculadora create() throws CreateException, RemoteException;
}

--

public interface CalculadoraLocal extends EJBLocalObject {
	public Integer soma(Integer v1, Integer v2) ;
}
--


public interface CalculadoraLocalHome extends EJBLocalHome {
	public CalculadoraLocal create() throws CreateException ;
}
--ejb-jar.xml
<ejb-jar >
	<description><![CDATA[Sem Descricao.]]></description>
	<display-name>Gerado pelo XDoclet</display-name>
	
	<enterprise-beans>
		<!-- Session Beans -->
		<session >
		<description><![CDATA[]]></description>
		<ejb-name>Calculadora</ejb-name>
		<home>aplicacao.CalculadoraHome</home>
		<remote>aplicacao.Calculadora</remote>
		<local-home>aplicacao.CalculadoraLocalHome</local-home>
		<local>aplicacao.CalculadoraLocal</local>
		<ejb-class>aplicacao.CalculadoraBean</ejb-class>
		<session-type>Stateless</session-type>
		<transaction-type>Container</transaction-type>
		</session>
	</enterprise-beans>
	<assembly-descriptor >	</assembly-descriptor>
</ejb-jar>
--jboss.jar
<jboss>
	<unauthenticated-principal>nobody</unauthenticated-principal>
	<enterprise-beans>
		<session>
			<ejb-name>Calculadora</ejb-name>
			<jndi-name>Calculadora</jndi-name>
			<local-jndi-name>CalculadoraLocal</local-jndi-name>
		</session>
	</enterprise-beans>
	<resource-managers>	</resource-managers>
</jboss>
Criado 11 de setembro de 2008
Respostas 0
Participantes 1