SpringL messageListener в weblogic 10.3 - ОШИБКА "Причина: [JMSClientExceptions: 055142] Внешнее назначение" - PullRequest
1 голос
/ 13 апреля 2011

Я пытаюсь развернуть MessageListener Spring 3.0.5 на weblogic 10.3 внутри войны и не могу заставить его работать.

Я создал простой jms-запрос на weblogic, но похоже, что weblogic думает, что я пытаюсь подключиться как иностранный клиент, хотя все локально?

[WARN]Не удалось настроить вызывающий модуль прослушивания сообщений JMS для пункта назначения «Системный модуль! Тестовая очередь» - попытка восстановления.Причина: [JMSClientExceptions: 055142] Зарубежное назначение, системный модуль! Очередь тестов

Вот моя весна xml

   <!--  connection factory -->
    <jee:jndi-lookup id="jmsConnectionFactory"  jndi-name="weblogic.jms.ConnectionFactory" 
   expose-access-context="true" />

    <!--  weblogic jms queue -->    
    <jee:jndi-lookup id="testQueue" jndi-name="jms.testQueue" expose-access-context="true"/>

    <!--  my onMessage listener bean -->    
    <bean id="jobNotificationQueueListener" class="com.xxx.component.jms.JobNotificationQueueListener" />

    <!--  spring container -->
    <bean id="jobNotificationQueueContainer"
    class="org.springframework.jms.listener.DefaultMessageListenerContainer">
        <property name="connectionFactory" ref="jmsConnectionFactory" />
        <property name="destination" ref="testQueue" />
        <property name="messageListener" ref="jobNotificationQueueListener" />
        <property name="sessionAcknowledgeModeName" value="AUTO_ACKNOWLEDGE" />
        <property name="sessionTransacted" value="true" />
    </bean>

Кто-нибудь видел это раньше?

Ответы [ 2 ]

1 голос
/ 13 апреля 2011

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

Какой тип очереди вы пытаетесь настроить?Некоторые вещи, которые нужно попробовать: 1) Попробуйте просмотреть дерево JNDI к месту назначения, чтобы подтвердить его там и подтвердить, что тип указан правильно 2) Подтвердите, что у вас есть серверы JMS, созданные и нацеленные на рассматриваемый сервер 3) Убедитесь, что у вас правильный таргетингдля очереди

ОБНОВЛЕНИЕ: Мне удалось воспроизвести и решить эту проблему.В моем файле ApplicationContext я имел такую ​​конфигурацию:

  <jee:jndi-lookup id="eventQueue" jndi-name="${jms.event.queue.name}" expose-access-context="true"/>

Я изменил его на:

  <jee:jndi-lookup id="eventQueue" jndi-name="${jms.event.queue.name}"/>

, и теперь он работает нормально и не выдает эту ошибку постоянно.

0 голосов
/ 13 апреля 2011

Иностранным JMS требуется их клиентская библиотека (т. Е. Websphere MQ потребуется mq.jar и еще два) в пути к классам, затем должен быть настроен класс фабрики соединений (в противном случае будет использоваться Weblogic по умолчанию) и так далее.

Другими словами, это скорее проблема конфигурации, а не программирования.

...