Olá, pessoal...
Preciso conectar a minha aplicação ao Glassfish e estou configurando meu Context da seguinte forma no cliente:
Properties props = new Properties();
props.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY, "com.sun.enterprise.naming.SerialInitContextFactory");
props.put(javax.naming.Context.URL_PKG_PREFIXES, "com.sun.enterprise.naming");
props.put(javax.naming.Context.STATE_FACTORIES, "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
props.put(javax.naming.Context.PROVIDER_URL, "iiop://
192.168.10.2:3700");
GestaoDeAgendamentosRemote gar = (GestaoDeAgendamentosRemote) new InitialContext(props).lookup("ejb/agenda/GestaoDeAgendamentos");
Quando eu mando executar ocorre a seguinte exceção:
javax.naming.CommunicationException: Can't find SerialContextProvider [Root exception is java.lang.ClassCastException]
at com.sun.enterprise.naming.SerialContext.getProvider...
...
...
As três primeiras propriedades (javax.naming.Context.INITIAL_CONTEXT_FACTORY, javax.naming.Context.URL_PKG_PREFIXES, javax.naming.Context.STATE_FACTORIES) eu copiei do jndi.properties do appserv-rt.jar.
Eu desenvolvo utilizando o Netbeans 6.9 com o Glassfish 3. Dentro da IDE é tudo uma maravilha, já que o servidor EJB está embutido, porém, quando dou o deploy na aplicação e pego o .jar
para executar fora do Netbeans é que a coisa não funciona.
Outra coisa muito importante pra mim é se esta configuração que demostrei no código acima (quando estiver funcionando) poderá ser colocada em um arquivo de configuração (jndi.properties)
para que eu possa usar o construtor padrão do InitialContext.
Bom, pessoal, este é meu primeiro post de desenvolvimento e espero ter colocado as informações necessárias para que me ajudem.