Galera.
Estou tentando fazer umas coisas com EJB, começando a simular um ambiente distribuido, mas estou com um problema.
No NetBeans eu crio uma aplicação EJB e um client java-local…
No Netbeans funciona perfeitamente… hehehe mas quando tento simular um cliente qualquer (Fora da Aplicação EJB) náo consigo…
Eu entro no server (Glassfish) e baixo o ClientStub, adciono ao classPath da aplicação client nova e nada de conseguir chamar as classes…
Alguém pode me dar uma luz ?
O código é :
try {
Properties props = new Properties();
props.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory");
props.setProperty("java.naming.factory.url.pkgs", "com.sun.enterprise.naming");
props.setProperty("java.naming.factory.state", "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
props.setProperty("org.omg.CORBA.ORBInitialHost", "localhost");
// optional. Defaults to 3700. Only needed if target orb port is not 3700.
props.setProperty("org.omg.CORBA.ORBInitialPort", "3700");
InitialContext ic = new InitialContext(props);
PrimeiroEJBRemote p = (PrimeiroEJBRemote) ic.lookup("br.sys.system4.PrimeiroEJBRemote");
//PrimeiraSessaoBean p = (PrimeiraSessaoBean) ic.lookup("PrimeiraSessaoBean");
String x = p.primeiroMetodo("Rodrigo");
System.out.println(x);
} catch (NamingException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
O problema está na linha
PrimeiroEJBRemote p = (PrimeiroEJBRemote) ic.lookup("br.sys.system4.PrimeiroEJBRemote");
Ele não acha a referência quando eu tento chamar interface, mesmo mesmo baixando direto do Glassfish o Client Stubs.
Abração e valeu.