Weblogic. JMS. Отправка и прием сообщения на topic из клиента.

max аватар
121
Находится в разделах:

При работе с JMS хочется проверить работу своего кода, а для этого нам может пригодится простой консольный клиент, который будет соединяться с сервером приложений, в данном случае с Weblogic, класть сообщение в топик и тут же вычитывать его. Так мы сможем протестировать работу publisher/subscriber в одном месте. Для этого создадим класс, пошагово объясняя каждую строчку. 

Сперва разберем весь код в деталях, а в конце приведем пример полного класса. 

 

Перед работой, желательно сразу подключить библиотеки weblogic.jar, wlclient.jar и wljmsclient.jar. Найти их можно в папка вебложика. 

 

Сперва нам необходимо задать системные свойства для контекста инициализации, которые должны содержать адрес провайдера и фабрику контекста инициализации:

Для Weblogic данные будут следующие:

t3://your_server_name:7290 - адрес сервера и порт, на котором крутится Ваш сервер. 

"weblogic.jndi.WLInitialContextFactory" - константное значение в случае использования weblogic, но разная для всех серверов приложений j2ee.

1. Создаем контекст инициализации, который будет находить для нас объекты по JNDI.

2. Получаем через контекст фабрику соединений для топика. Она уже должна быть создана у Вас на сервере. 

3. Создаем соединение для топика:

4. Создаем сразу две сессии - через одну будем отсылать сообщения, через другую - принимать. 

 

5. Находим наш топик, в который будем отсылать по имени JNDI через контекст инициализации:

6. Дальше - все просто. Создаем паблишера, сообщение, задаем текст сообщения и публикуемся:

Если все пошло хорошо - мессага улетела на топик.

 

Прием сообщений. 

1. Подписываемся на топик:

2.  Начинаем:

3. В цикле принимаем сообщений. Реализация убогая, но для теста пойдет:

4. Задаем нашему классу, что он имплементит MessageListener интерфейс и задаем метод onMessage(), который слушает топик:

 

Ну и в конце пример полноценного класса, готового к запуску:


Конец
Бенджамин Франклин утверждает, что стоит отводить нужное время на все дела; большая спешка — большие потери.

Отправить комментарий

CAPTCHA
Чтобы оставить комментарий, введите пожалуйста код, изображенный на картинке
Image CAPTCHA
Введите символы, изображенные на картинке