2011-12-29 2 views
3

Я ищу канал связи между двумя java-программами, запущенными на одном компьютере. Я нашел несколько вариантов (RMI и XML-RCP), но ни один из примеров, которые я нашел, не показывает обмен объектами, класс которых является непримитивным и не известен на JDK (наши собственные объекты).Связь между Java-программами с объектами, отличными от 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; 

} 

ответ

4

Просто сделайте, чтобы ваши классы транспорта реализовали интерфейс Serializable, и все будет хорошо с RMI. Обратите внимание, что каждый объект, на который указывает транспортный объект, должен также быть Serializable.

RMI tutorial использует пример с настраиваемым интерфейсом задач, реализованным пользовательским классом Pi, который не является «стандартным» классом JDK.

1

Вы также можете рассмотреть Versile Java (Я - один из его разработчиков). Перейдите по ссылке для примера удаленных вызовов и определения удаленных интерфейсов. Он реализует независимый от платформы стандарт для удаленного взаимодействия с ORB, в настоящее время также доступный для python.