Могу ли я использовать JMS с обычным (т.е. не Java EE) приложением Java? - PullRequest
1 голос
/ 27 июня 2011

Я бы хотел использовать Службу сообщений Java , но там говорится, что это для платформы Java EE.Есть ли способ перенести его в обычное Java-приложение (над которым я работаю в Eclipse)?

Ответы [ 4 ]

5 голосов
/ 27 июня 2011

JMS является частью спецификации Java EE, но вы можете использовать ее из любого приложения Java. В зависимости от ваших потребностей, вам может потребоваться запустить автономного брокера, но это похоже на работу обычного демона (или службы Windows).

2 голосов
/ 01 июля 2011

Да, вы абсолютно можете использовать JMS из приложения J2SE. Фактически, вы можете получить доступ к JMS-брокеру из программ, вообще не написанных на Java. Сервер ActiveMQ JMS включает несколько транспортных соединителей. Соединители позволяют клиентам взаимодействовать с ActiveMQ, используя различные протоколы связи. Большинство клиентов Java используют коннектор openwire. Я написал PHP-клиент, который с большим успехом использовал протокол STOMP . Он использовал сообщения, отправленные в очередь JMS приложением Java, работающим в контейнере сервлетов Tomcat.

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

Многие серверы обмена сообщениями также предоставляют свои Java-API для связи, такие как MQ с открытым исходным кодом Apache ActiveMQ .В этом случае вам не нужно беспокоиться о JMS.Вам просто нужно понять и использовать этот API.

1 голос
/ 27 июня 2011

Это гораздо более сложный вопрос, чем указывал бы ответ. Jms - это спецификация На самом деле просто набор интерфейсов. Вы можете использовать эти интерфейсы из автономного Java-процесса. Черт, вы могли бы написать свою собственную реализацию сообщений, совместимую с jms. Вопросы, которые вы должны задать себе: какую реализацию обмена сообщениями я буду использовать и поддерживает ли она jms? Даже после ответа о том, что при подключении к брокерам за пределами контейнера необходимо учитывать множество предостережений, включая, помимо прочего, транзакционность, балансировку нагрузки, пул соединений и высокую доступность. Прежде чем вы сможете ответить на этот вопрос, вы должны четко понимать, что вы пытаетесь сделать и с каким поставщиком сообщений вы работаете

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...