2011-12-29 11 views
3

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

Utils.jar:

class MyClassRequestParams { ... } 

class MyClassReturnParams { ... } 

ので、簡単な技術は、私は、これは(それがServer.jarとclient.jarののクラスパス上にあるUtils.jarことに注意してください)やりたいときに使用するものです

client.jarの:

// Server creation 
... 

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

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

Server.jar:

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

    // do processing 

    return response; 

} 

答えて

4

トランスポートクラスをSerializableインターフェイスに実装するだけで、すべてがRMIで正常に機能します。トランスポートオブジェクトで参照されるすべてのオブジェクトもシリアライズ可能である必要があります。

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

1

Versile Java(私はその開発者の一人です)。リモートコールの作成とリモートインターフェイスの定義の例については、リンクをたどってください。リモートORBの相互作用のためのプラットフォームに依存しない標準を実装しています。現在はPythonでも利用可能です。

関連する問題