0

Java Web Start を使用して、glassfish サーバーの ejb サービスに接続しようとしています。初期コンテキストの取得中に次のエラーが発生します。初期コンテキストを取得するためのコード スニペットも追加しました。

興味深いのは、netbeans IDE で Java Web Start の外部で単純な Java プログラムとしてプログラムを実行すると、正常に動作することです。

関連するすべてのjarファイルをglassfishモジュールフォルダーから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);
        }
4

4 に答える 4

1

関連するjarファイルが何であるかはわかりませんが、その領域について別の見方をしている場合に備えて: 初期コンテキストに使用するのと同じプロパティを使用して、 appserv-rt.jar と java-ee.jar のみを使用しますそしてそれはうまくいきます。必要のないものは何も追加せず、もう一度やり直してください。

于 2012-07-20T20:58:54.037 に答える
0

glassfish/bin の package-appclient は、クライアント用の jar を含む appclient.jar を作成します。次に、クライアントで解凍し、通常どおり gf-client.jar を使用します。

于 2012-12-04T08:52:08.633 に答える
-1

これらのセットアップはすべて、マシンにGlassfishがインストールされている場合にのみ機能することを付け加えておきます。GlassfishサーバーがないマシンにJavaWebStartアプリをデプロイすると、同じ例外が発生します。その理由は、appserv-rt.jarを開くと、gf-client.jarを指し、gf-client.jarを調べると、modulesフォルダー内の多数のjarファイルを指しているためです。したがって、基本的に、gf-client.jarが指すすべてのjarファイルが必要だと思います。

于 2012-11-26T23:53:14.423 に答える