- PR -

ルータ越え環境でのRMI通信実現方法について(java-rmi.cgi取得方法)

1
投稿者投稿内容
森山
会議室デビュー日: 2007/12/17
投稿数: 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

スキルアップ/キャリアアップ(JOB@IT)