- - PR -
ルータ越え環境でのRMI通信実現方法について(java-rmi.cgi取得方法)
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-12-17 20:06
森山と申します。
RMIサーバ(RMIレジストリ起動)、クライアントが異セグメント上にある場合の 通信実現方法についての質問です。 実行環境において、使用ポートに制限がかけられており、 Socketによる直接通信では、エラーが発生してしまいます。 ※ポートを全解放すると通信可能。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ java.rmi.ConnectIOException: Exception creating connection to: <RMIサーバIP> ; nested exception is: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ そこで、Socketによる直接通信から、HTTPプロトコルに組み入れ、RMIサーバのポートへ直接接続する方法を試みたところ(sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket() をオーバライドするサブクラスを作成) 今度は以下のエラーが発生してしまいました。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ サーバ上のアクセスログ、エラーログは以下の通りです。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ※アクセスログ <クライアントIP> - - [16/Dec/2007:20:25:30 +0900] "POST /cgi-bin/java-rmi.cgi?forward=3005 HTTP/1.1" 404 226 ※エラーログ [Sun Dec 16 20:25:30 2007] [error] [client クライアントIP] (2)No such file or directory: script not found or unable to stat: c:/interstage/f3fmihs/cgi-bin/java-rmi.cgi ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 以上のログから、"java-rmi.cgi"スクリプトをサーバのc:/interstage/f3fmihs/cgi-binに展開すれば、通信できるのではないかと考えています。 SDKが提供しているものだとは思いますが、取得方法がわかりません。 取得方法について、ご教示お願い致します。 ※環境は以下の通りです。 サーバOS:Windows Server 2003(R2) Webサーバ:Interstage Application Server SE SL クライアント:WindowsXP |
1