Связь между программами Java с не-JDK объектами - PullRequest
3 голосов
/ 29 декабря 2011

Я ищу канал связи между двумя 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;

}

Ответы [ 2 ]

4 голосов
/ 29 декабря 2011

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

Учебное пособие RMI использует пример с пользовательским интерфейсом Task, реализованным пользовательским классом Pi, который не является "стандартным"JDK класс.

1 голос
/ 29 февраля 2012

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

...