1

LinuxAmazonEC2インスタンスでJBoss4.0.4.GAを実行しています。アプレットをダウンロードするJSPにマップするブラウザからURLに接続します。アプレットコードは、セッションBeanのJNDIルックアップを実行します。ブラウザのJavaコンソールに表示されるエラーは次のとおりです。

Connection refused to host: 10.xxx.xxx.xxx
nested exception is: 
    java.net.ConnectException: Connection timed out: connect

つまり、私のアプレットはインスタンスのプライベートIPに接続しようとしていますが、これはもちろん失敗する運命にあります。

JNDIルックアップを実行する[要約]コードは次のとおりです。

System.setProperty(InitialContext.PROVIDER_URL, "jnp://<public ip of EC2 instance>:1099");
InitialContext ic = new InitialContext(null);
Object o = ic.lookup("ejb/....MySessionBean");

Javaコンソールでトレースをオンにすると、内部IPのポート1098にリクエストが送信されていることがわかります。

network: Connecting http://<public ip>:1099/ with proxy=DIRECT
network: Connecting http://<private ip>:1098/ with proxy=DIRECT

誰かがその1098通信を外部IPで行う方法を教えてもらえますか?

4

1 に答える 1

1

-Djava.rmi.server.hostname=public-IP を JBoss スタートアップに追加すると、この問題は解決しました。

于 2012-05-08T08:47:00.633 に答える