Интеграция Java и не-Java систем через JMS - PullRequest
2 голосов
/ 17 апреля 2011

Недавно мы думали об интеграции нашей системы J2EE с другими приложениями, написанными на Python / Perl. Наше приложение очень хорошо интегрируется с другими системами Java через JMS. Возможно ли, что не Java-системы получат сообщения Serializable и внесут в него некоторые изменения (на каком-то уровне каждое свойство класса имеет тип примитива java)? Также мы хотели бы сделать это в другом направлении, например, Приложение Python создает объект, который затем будет отправлен через JMS и изменен (по крайней мере, понятен) нашим приложением Java. Есть ли у вас опыт в этой теме / намеки на нас?

Спасибо заранее, Петр

1 Ответ

3 голосов
/ 17 апреля 2011

Вы не хотите использовать Serializeable объекты для этого. Вам понадобится более переносимый формат, такой как текстовый формат, такой как XML, JSON или CSV. Попытка прочитать сериализованный объект Java на других платформах просто не стоит.

Теперь вы можете использовать другой двоичный формат, например, формат Google (я думаю, он называется буфером протокола). Вы также можете изменить ваши классы Java, в частности те, которые вы планируете обменять, и вы можете реализовать интерфейс Externalizable. Это дает вам полный контроль над чтением и записью ваших Java-классов. Таким образом, вы все еще можете использовать протокол сериализации Java и рабочий процесс, но писать и читать более переносимый формат.

Это позволит вам постепенно добавлять поддержку системы Python, не беспокоя при этом остальную часть системы, особенно для обмена сообщениями, до тех пор, пока в ваших очередях при переключении не будет обрабатываться устаревших сообщений.

...