0

標準の Java.exe/Javaw.exe ではなく、リモート Activatable オブジェクトがカスタム EXE プロセスでホストされるカスタム RMI アクティベーション スキームを実装しようとしています。

RMI では、「Activatable」オブジェクトを永続化し、復元したり、オンデマンドで起動したりできます。'Activatable' オブジェクトが RMI レジストリに登録され、初めて要求された後、RMID はホストの子プロセス (通常は java.exe/javaw.exe) を起動し、子プロセスの stdin を介して 2 つの情報を渡し、特別な隠しクラス「sun.rmi.server.ActivationGroupInit」のメイン メソッドを実行する子プロセス。このクラスは、「Activatable」オブジェクトのインスタンスを作成およびホストするプロセスを準備する他のすべてのブートストラップです。この後、クライアントとサーバーは RMI を介して通信します。

簡単な Win32 EXE プロジェクトを定義し、この EXE 内で JVM を起動する JNI コードを記述し、「sun.rmi'server.ActivationGroupInit」のメイン メソッドを呼び出すことができました。このクラスは、stdin を解析し、ActivationGroup の作成に必要なものを抽出できます。ただし、最終的にリモート オブジェクトのアクティブ化が失敗する原因となるいくつかの問題が発生しており ( UnknownObjectException.

この時点で、一歩下がって、以前にこれを試みた人がいるかどうか、また、早い段階で知っておくべき落とし穴があるかどうかを知りたいと思いましたか?

ありがとう、ランジット

4

1 に答える 1

0

Oracleフォーラムで延々と議論してきたように、これは必要ありません。java.exeまたはjavaw.exeをコピーするか、java.exeとまったく同じ方法で渡されるすべての引数を使用してJVMを起動する独自のラッパーを作成します。アクティベーションシステムがstdinなどで何を送信するかを心配する必要はありません。既存のアクティベーションクラスがすべてを行います。

于 2012-02-06T09:29:49.703 に答える