EJB Jndi procura no servidor Glassfish apenas no Java Web start

Eu estou tentando se conectar ao serviço ejb no servidor glassfish através do Java Web start. Estou recebendo o seguinte erro ao obter o contexto inicial. Eu também adicionei o trecho de código para obter o contexto inicial.

Um interessante é quando eu executo o programa como um simples programa java fora do java web start em um netbeans IDE, ele está funcionando bem.

Eu adicionei todos os arquivos jar relevantes da pasta de módulos glassfish no java web start.

java.lang.NullPointerException at com.sun.enterprise.naming.impl.SerialContext.(SerialContext.java:275) at com.sun.enterprise.naming.impl.SerialContext.(SerialContext.java:334) at com.sun.enterprise.naming.impl.SerialInitContextFactory.createInitialContext(SerialInitContextFactory.java:358) at com.sun.enterprise.naming.impl.SerialInitContextFactory.getInitialContext(SerialInitContextFactory.java:353) at com.sun.enterprise.naming.SerialInitContextFactory.getInitialContext(SerialInitContextFactory.java:69) at javax.naming.spi.NamingManager.getInitialContext(Unknown Source) at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source) at javax.naming.InitialContext.init(Unknown Source) at javax.naming.InitialContext.(Unknown Source) at gov.ca.lc.util.ServiceLocator.getInitialContext(ServiceLocator.java:140) at gov.ca.lc.util.ServiceLocator.getVotesEJB(ServiceLocator.java:103) at gov.ca.lc.scenemanagement.AbstractVotingScene.getCommitteeList(AbstractVotingScene.java:143) at gov.ca.lc.scenemanagement.AbstractVotingScene.(AbstractVotingScene.java:65) at gov.ca.lc.scenes.MenuScene.(MenuScene.java:56) at gov.ca.lc.menu.StartVoting.startUp(StartVoting.java:47) at org.mt4j.MTApplication.setup(MTApplication.java:328) at processing.core.PApplet.handleDraw(PApplet.java:1580) at processing.core.PApplet.run(PApplet.java:1502) at java.lang.Thread.run(Unknown Source) Exception in thread "Animation Thread" java.lang.NullPointerException at gov.ca.lc.scenemanagement.AbstractVotingScene.getCommitteeList(AbstractVotingScene.java:143) at gov.ca.lc.scenemanagement.AbstractVotingScene.(AbstractVotingScene.java:65) at gov.ca.lc.scenes.MenuScene.(MenuScene.java:56) at gov.ca.lc.menu.StartVoting.startUp(StartVoting.java:47) at org.mt4j.MTApplication.setup(MTApplication.java:328) at processing.core.PApplet.handleDraw(PApplet.java:1580) at processing.core.PApplet.run(PApplet.java:1502) at java.lang.Thread.run(Unknown Source) Following is my code to get the initial context private static InitialContext getInitialContext() throws NamingException { Properties props = null; try{ // props=new Properties(); // props.load(new FileInputStream(new File("jndi.properties"))); // System.out.println(props.get("java.naming.factory.initial")); 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");//ur server ip props.setProperty("java.naming.factory.state ", "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");//ur server ip props.setProperty("org.omg.CORBA.ORBInitialHost", "165.107.33.181");//ur server ip props.setProperty("org.omg.CORBA.ORBInitialPort","3700"); //default is 3700 }catch(Exception ex){ ex.printStackTrace(); } return new InitialContext(props); } 

Eu tenho o mesmo problema. Eu uso o JMS e preciso adicionar outros flasks. No começo eu tentei usar o gf-client.jar, mas ele não funciona através do Java Web Start. Então, adicionei jars listados em Conectando um Cliente JMS Remoto ao GlassFish 3 . Funciona fora do início da Web Java.

Eu não sei o que os arquivos jar relevantes são para você, mas apenas no caso de termos uma visão diferente sobre essa área: eu uso apenas appserv-rt.jar e java-ee.jar usando as mesmas propriedades que você usa para o contexto inicial e funciona bem. Não adicione mais nada que você não precise e tente novamente.

package-appclient em glassfish / bin cria appclient.jar que inclui jars para o cliente. Em seguida, descompacte-o em um cliente e use gf-client.jar como de costume.

Eu gostaria de acrescentar que todas estas configurações funcionarão somente se você tiver o glassfish instalado em sua máquina. Se você implantar o aplicativo java webstart em uma máquina que não tenha o servidor glassfish, teremos a mesma exceção. A razão é que se você abrir o appserv-rt.jar ele aponta para o gf-client.jar e se você olhar para o gf-client.jar ele aponta para um monte de arquivos jar na pasta modules. Então eu suponho que, essencialmente, precisamos de todos os arquivos jar apontados pelo gf-client.jar.