2016-02-26 2 views
0

Я получаю ошибку ниже при использовании пружины CachingConnectionFactory для подключения к Websphere MQ на WASОшибка при помощи Spring CachingConnectionFactory с Websphere MQ на WebSphere Application Server

org.springframework.jms.IllegalStateException: **Method setExceptionListener not permitted;** nested exception is javax.jms.IllegalStateException: Method setExceptionListener not permitted 
     at org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:279) ~[spring-jms-4.1.5.RELEASE.jar:4.1.5.RELEASE] 
     at org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:169) ~[spring-jms-4.1.5.RELEASE.jar:4.1.5.RELEASE] 
     at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:496) ~[spring-jms-4.1.5.RELEASE.jar:4.1.5.RELEASE] 
     at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:568) ~[spring-jms-4.1.5.RELEASE.jar:4.1.5.RELEASE] 
     at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:559) ~[spring-jms-4.1.5.RELEASE.jar:4.1.5.RELEASE] 

Моя конфигурация выглядит -

<jee:jndi-lookup id="jmsConnectionFactory" 
      jndi-name="jms/XXXCF" /> 

<bean id="cachedConnectionFactory" 
      class="org.springframework.jms.connection.CachingConnectionFactory"> 
      <property name="targetConnectionFactory" ref="jmsConnectionFactory"/> 
      <property name="sessionCacheSize" value="50" /> 
     </bean> 

<bean id="jmsResponseTemplate" class="org.springframework.jms.core.JmsTemplate"> 
      <property name="connectionFactory" ref="cachedConnectionFactory" /> 
      <property name="defaultDestination" ref="XXXQueue" /> 
     </bean> 

Кто-нибудь знает, не хватает ли какой-либо конфигурации весной или стороной WAS? Заранее спасибо.

ответ

0

Я столкнулся с такой же проблемой. После отладки кода пружинный я обнаружил, что IBM имеет проблемы с этим из-за установки «reconnectOnException»

Добавляя

< имя свойства = значение «reconnectOnException» = «ложь» />

к вашему cachedConnectionFactory. вы обошли эту проблему.

Но теперь, конечно, после того, как было брошено исключение, я получаю исключение, как этот

  • Производитель закрыт
  • org.springframework.jms.IllegalStateException: Сессия закрыта;
  • javax.jms.IllegalStateException: Соединение закрыто

Кто-нибудь есть идеи, как получить IBM, чтобы играть хорошо с reconnectOnException = «истина»?

Смежные вопросы