我正在寻找在同一台机器上运行的两个java程序之间的通信通道。我找到了一些选项(RMI和XML-RCP),但是我找到的所有示例都没有显示对象的交换,因为它是非原始的并且在JDK(我们自己的对象)上不知道。
那么,当我想这样做时,使用什么是简单的技术(注意Utils.jar它位于Server.jar和Client.jar的类路径上):
Utils.jar:
class MyClassRequestParams { ... }
class MyClassReturnParams { ... }
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;
}
答案 0 :(得分:4)
只需让您的传输类实现Serializable接口,RMI就可以了。请注意,传输对象引用的每个对象也应该是Serializable。
RMI tutorial使用一个自定义Task接口的示例,该接口由不是“标准”JDK类的Pi自定义类实现。
答案 1 :(得分:1)
您也可以考虑Versile Java(我是其开发人员之一)。请按照链接获取远程调用和定义远程接口的示例。它实现了一个独立于平台的标准,用于远程ORB交互,目前也可用于python。