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で行う方法を教えてもらえますか?