Como acessar o EJB no servidor remoto?

Eu estou usando um servidor GlassFish-3.1.2 em execução na minha sub-rede (192.168.1.3:3700). Eu já implantei um aplicativo corporativo incluindo um EJB no qual eu defini um método de negócios. Agora eu quero acessar remotamente o EJB do meu cliente de aplicativo java. Como faço para configurar o JNDI resp. o object InitialContext para fazer a pesquisa do EJB? Como preciso definir as propriedades? Btw. Eu tive que executar o “asadmin enabled-secure-admin” para fazer o servidor GlassFish funcionar na rede local. Provavelmente eu também preciso enviar minhas credenciais com as propriedades?

Aqui está minha “solução” atual, que parece estar completamente errada:

Properties props = new Properties(); props.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory"); props.setProperty("org.omg.CORBA.ORBInitialHost", "192.168.1.3"); props.setProperty("org.omg.CORBA.ORBInitialPort", "3700"); InitialContext ctx = new InitialContext(props); TestentityFacadeRemote tfr = (TestentityFacadeRemote)ctx.lookup("java:global/TestEE/TestEE-ejb/TestentityFacadeRemote"); 

Quando eu executo este programa, ele simplesmente espera infinitamente …

Qualquer ajuda muito apreciada!

Eu resolvi o problema definindo o host e a porta diretamente por System.setProperty () e usando o construtor padrão para inicializar o InitialContext (). Note que as seguintes linhas devem ser as primeiras do seu método program / main:

 public static void main(String[] args) { System.setProperty("org.omg.CORBA.ORBInitialHost", "192.168.1.3"); System.setProperty("org.omg.CORBA.ORBInitialPort", "3700"); InitialContext ctx = new InitialContext(); TestentityFacadeRemote tfr = (TestentityFacadeRemote)ctx.lookup("java:global/TestEE/TestEE-ejb/TestentityFacadeRemote!com.acme.remote.TestentityFacade"); } 

Espero que isto ajude …