Pessoal, estou começando com EJB. Já consegui fazer funcionar um EJB com um cliente Home aplicado em um Servlet, agora quero fazer funcionar com a inteface remota. Eu tentei fazer da seguinte forma (estou me baseando em um tutorial que encontrei). Será que alguém pode me ajudar?
Meu cliente remoto:
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
import aplicacao.interfaces.LoginHome;
public class TesteLogin
{
/**
* @param args
*/
public static void main(String[] args)
{
Hashtable t = new Hashtable();
t.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
t.put(Context.PROVIDER_URL, "localhost");
LoginHome home;
try
{
Context context = new InitialContext(t);
Object ref = context.lookup("java:/comp/env/ejb/Login");
home = (LoginHome) PortableRemoteObject.narrow(ref, LoginHome.class);
} catch (Exception e)
{
e.printStackTrace();
}
}
}
Erro como resultado da execução:
javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory]
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:657)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.<init>(InitialContext.java:197)
at TesteLogin.main(TesteLogin.java:27)
Caused by: java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:242)
at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:42)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:654)
... 4 more