3

同じマシンで実行されている 2 つの Java プログラム間の通信チャネルを探しています。いくつかのオプション (RMI および XML-RCP) を見つけましたが、見つかった例のいずれも、非プリミティブで JDK (私たち自身のオブジェクト) で知らないクラスのオブジェクトの交換を示していません。

では、これを行うときに簡単に使用できるテクノロジーは何ですか (Utils.jar は Server.jar と Client.jar のクラスパスにあることに注意してください)。

Utils.jar:

class MyClassRequestParams { ... }

class MyClassReturnParams { ... }

クライアント.jar:

// Server creation
...

// Send request
MyClassRequestParams params = new MyClass...

MyClassReturnParams response = server.send("serverMethodName", params);

サーバー.jar:

MyClassRequestParams serverMethodName(MyClassRequestParams params)
{
   MyClassReturnParams response = new MyC...

   // do processing

   return response;

}
4

2 に答える 2

4

トランスポート クラスに Serializable インターフェイスを実装させるだけで、RMI ですべて問題なく動作します。トランスポート オブジェクトで参照されるすべてのオブジェクトもシリアライズ可能である必要があることに注意してください。

RMI チュートリアルでは、「標準」の JDK クラスではない Pi カスタム クラスによって実装されたカスタム Task インターフェイスの例を使用しています。

于 2011-12-29T14:35:49.010 に答える
1

Versile Javaも検討してください(私はその開発者の 1 人です)。リモート呼び出しを行い、リモート インターフェイスを定義する例については、リンクをたどってください。プラットフォームに依存しないリモート ORB インタラクションの標準を実装しており、現在は Python でも利用できます。

于 2012-02-29T11:37:08.030 に答える