繁体   English   中英

EJB Jndi仅在Java Web start中查找Glassfish服务器

[英]EJB Jndi look up in Glassfish server only in Java Web start

我试图通过Java Web start连接到glassfish服务器中的ejb服务。 获取初始上下文时,我收到以下错误。 我还添加了用于获取初始上下文的代码片段。

有趣的是,当我在netbeans IDE中将程序作为java web start之外的简单java程序运行时,它运行正常。

我将glassfish模块文件夹中的所有相关jar文件添加到java web start中。

java.lang.NullPointerException
    at com.sun.enterprise.naming.impl.SerialContext.<init>(SerialContext.java:275)
    at com.sun.enterprise.naming.impl.SerialContext.<init>(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.<init>(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.<init>(AbstractVotingScene.java:65)
    at gov.ca.lc.scenes.MenuScene.<init>(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.<init>(AbstractVotingScene.java:65)
    at gov.ca.lc.scenes.MenuScene.<init>(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);
        }

我也有同样的问题。 我使用JMS,我需要添加其他jar。 起初我尝试使用gf-client.jar,但它无法通过Java Web start工作。 所以我添加了将远程JMS客户端连接到GlassFish 3中列出的jar。 它在Java Web start之外工作。

我不知道相关的jar文件对你来说是什么,但是以防我们在该区域有不同的视图:我使用appserv-rt.jar和java-ee.jar使用你用于初始上下文的相同属性它工作正常。 不要添加任何你不需要的东西,然后再试一次。

glassfish / bin中的package-appclient创建包含客户端jar的appclient.jar。 然后将其解压缩到客户端并像往常一样使用gf-client.jar。

我想补充说,只有在机器中安装了glassfish时,所有这些设置才有效。 如果您在没有glassfish服务器的计算机上部署java webstart应用程序,那么我们最终会得到相同的异常。 原因是,如果你打开appserv-rt.jar,它指向gf-client.jar,如果你查看gf-client.jar,它指向modules文件夹中的一大堆jar文件。 所以我想,基本上我们需要gf-client.jar指向的所有jar文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM