2012-03-22 8 views
3

サブネット(192.168.1.3:3700)で動作しているGlassFish-3.1.2サーバを使用しています。私は既にビジネスメソッドを定義したEJBを含むエンタープライズアプリケーションをデプロイしました。今私は、JavaアプリケーションクライアントからEJBにリモートアクセスしたいと思っています。どのようにJNDI respをセットアップする必要がありますか? EJBのルックアップを行うためのInitialContextオブジェクト?どのようにプロパティを定義する必要がありますか? Btw。 GlassFishサーバーをLAN上で動作させるために、 "asadmin enabled-secure-admin"を実行しなければなりませんでした。おそらく私はまた、プロパティで自分の資格情報を送る必要がありますか?私はこのプログラムの開発を実行するとリモートサーバー上のEJBにアクセスする方法は?

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"); 

が、それだけで無限に待つ...

すべてのヘルプは高く評価:

はここcompletley間違っているようだ私の現在の「解決策」、です!

+0

チェックアウトhttp://stackoverflow.com/a/3783501/1037626:次の行は、非常に最初のプログラムで/ mainメソッドでなければならないことに注意してくださいいくつかのプロパティがそこに記述されています。 – mgaert

答えて

6

私は、System.setProperty()でホストとポートの指示を設定し、InitialContext()を初期化するためのデフォルトのコンストラクタを使用して問題を解決しました。あります - このことができます

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"); 
} 

希望...

+0

'IIOP'ルックアップのために、GlassfishのORB - > IIOPまたはJNDIリソースを構成しましたか? – Thufir

+0

私は、サーバーのIPアドレスでORB-> IIOPのみを構成しました。私はデフォルトのJNDI設定で何も変更しませんでした。 – salocinx

関連する問題