Olá pessoal,
Preciso utilizar o EJB da minha aplicação Web em um cliente stand-alone.
Na aplicação Web eu faço isso:
@EJB(beanInterface=HelloUser.class,name="br.com.eletronica.cadUser.HelloUser")
HelloUser helloUser;
E na aplicação desktop alguém saberia como fazer o lookup?
Bom vou passar os details de como eu resolvi.
aplicação desktop com os jar`s
javaee.jar
appserv-rt.jar
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.naming.InitialContext;
import javax.naming.NamingException;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author r4it0.light
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
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");
props.setProperty("org.omg.CORBA.ORBInitialPort", "3700");
InitialContext ic;
ic = new InitialContext(props);
Object o = ic.lookup("HelloUser#br.com.eletronica.cadUser.HelloUser");
} catch (NamingException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
link referencia
http://www.coderanch.com/t/320941/EJB-Other-Java-EE-Technologies/java/ejb-lookup
r4it0.light, desculpe não ter visto esse tópico antes. Vou entã completar um pouco, já que você já obteve a resposta.
Exportar EJBs no JNDI é complicado, pois cada conteiner usa de uma forma.
No glassfish se você tem EJB remoto e não declarar explicitamente o nome do EJB você faz lookup pelo nome completo da classe. Se você está usando local você pode ou usar injeção de dependencia ou então fazer lookup com o nome completo da classe usando o contexto local java:comp:env.
Há uma boa documentação aqui: https://glassfish.dev.java.net/javaee5/ejb/EJB_FAQ.html