2011-11-08 10 views
0

glassfish3サーバー上にある組み込みJMSのスタンドアロンリモートクライアントを作成しました。リモートJMS glassfish 3.x

クライアントコード:


    jndiContext = new InitialContext(); 
    queueConnectionFactory = (TopicConnectionFactory) jndiContext.lookup("topekFactory"); 
    queue = (Topic) jndiContext.lookup("topek"); 

クライアントはその同一マシン上であれば正常に動作します。リモートマシン上で実行しようとするたびに、2行目にハングします。

glassfishサーバーを指すために-Dorg.omg.CORBA.ORBInitialHost = 10.10.10.2を使用しています。


    props.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory"); 
    props.setProperty("java.naming.factory.url.pkgs", "com.sun.enterprise.naming"); 
    props.setProperty("java.naming.factory.state", "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl"); 
    props.setProperty("org.omg.CORBA.ORBInitialHost", "10.10.10.2"); 
    props.setProperty("org.omg.CORBA.ORBInitialPort", "3700"); 

しかし、無ポジティブな結果: はまた、プロパティでInitialContextを作成しようとしました。

どのようなアイデア、何が間違っているのですか? Glassfish Embedded Jmsとリモートクライアントを接続する方法は? ありがとうございます

+0

は10.10.10.2または0.0.0.0アドレスにバインドされたサーバーですか?どのOSがサーバーを稼動していますか? – DaTroop

+0

WindowsとSLES11で試してみました(listeniengは0.0.0.0です)。これは、異なるマシン/ OSで100%再現可能です。リモートコネクトを制限するいくつかの設定がありますか? – maseth

+0

8080ポートにアクセスできますか? – DaTroop

答えて

0

8080ポートにリモートアクセスできますか?

リモートマシンからサンプルWebアプリケーションにアクセスしてみます。例えばhttp://10.10.10.2/sample/である。あなたがリモートからアクセスすることができず、それをローカルにアクセスすることができない場合、これはグラスフィッシュがローカルホストアドレスにバインドされる可能性があることを意味します。

domain.xmlを確認し、さまざまなネットワークリスナーがバインドするIPアドレスを確認してください。 0.0.0.0の場合は、ファイアウォールがおそらく着信接続をブロックしている可能性があります。 127.0.0.1の場合は、ネットワークIPまたは任意のIP(0.0.0.0)に変更する必要があります。

設定がすべて問題なく、再起動後でもそれにアクセスできない場合は、ファイアウォールをすべて無効にして、その場合はすべて正常に動作するかどうかを確認してください。

アウト

チェックthisポートは場合にデフォルトで必要とされているかを確認するために、それはファイアウォールのだと今では、クラスタを述べたことを、適切なアクセス

を許可するようにファイアウォールで必要なルールを追加します。これは役立つかもしれない:

check this out

+0

ドメインの設定でファイアウォールがオフになっていて、どこにも127.0.0.1がありません – maseth

関連する問題