передача объекта сообщения java между приложениями - PullRequest
2 голосов
/ 29 июня 2009

Я использую Java Mail API 1.4.1 для получения новых писем. Два класса используются для получения электронных писем и последующего их анализа. Класс «GetMail» связывается с почтовым сервером (Gmail, Yahoo и т. Д.) И получает объект сообщения. Затем объект сообщения передается еще одному классу «MailFormatter», который затем анализирует объект сообщения, получает заголовки электронной почты (From, To, Subject и т. Д.), А затем анализирует содержимое Multipart для получения основного тела и вложений. процессы «Получение почты» и «Форматирование почты» очень ресурсоемки, эти классы будут реализованы в виде отдельных веб-приложений. Это приложение будет отслеживать новые электронные письма на предмет наличия многочисленных идентификаторов электронной почты. Если это («GetMail» и «MailFormatter») ") реализованы в виде отдельных веб-приложений. Как передать объект сообщения из приложения" GetMail "в приложение" MailFormatter "? Есть ли способ, с помощью которого я могу сохранить полученный объект сообщения в определенном месте (месте, которое является общим для приложений «GetMail» и «MailFormatter»), так что «GetMail» может сохранить объект сообщения в этом месте, и затем приложение «MailFormatter» может считывать объекты «Сообщения» из этого местоположения и выполнять процесс анализа. Объекты сообщения не могут быть сериализованы. Если они не могут быть сериализованы, как я могу сохранить состояние объекта почтового сообщения Java? Пожалуйста, помогите мне решить эту проблему.

Ответы [ 2 ]

1 голос
/ 29 июня 2009

Хорошо MimeMessage можно сериализовать с помощью writeTo (OutputStream) и десериализовать с помощью конструктора MimeMessage (Session, InputStream).

Таким образом, сообщение может быть отправлено из одного веб-приложения в другое.

0 голосов
/ 29 июня 2009

Я понимаю, что не отвечаю на ваш вопрос (!), Но мне интересно, решаете ли вы правильную проблему. Является ли анализ настолько трудоемким, что требует разделения на другой процесс. Вы пытались собирать сообщения через один поток и асинхронно анализировать их через другой? Я подозреваю, что это будет проще, чем выполнение какой-либо формы IPC.

Если вы действительно хотите сериализовать объекты, которые не Serializable, взгляните на XStream , который будет сериализовывать большинство вещей в / из XML.

...