TypeMismatchNamingException при весенней загрузке с IBM MQ - PullRequest
0 голосов
/ 15 марта 2019

Я пытаюсь создать загрузочный проект Spring для чтения сообщений из очереди и некоторой обработки.

Я определил Jndi ConnectionFactory в application.properties

spring.jms.jndi-name=java:/MyConnectionFactory

При запуске приложения я получаю следующее исключение:

Caused by: org.springframework.jndi.TypeMismatchNamingException: Object of type [class com.ibm.mq.connector.outbound.ConnectionFactoryImpl] available at JNDI location [java:/MyConnectionFactory] is not assignable to [javax.jms.ConnectionFactory]

Я развертываю код на сервере jboss с указанным jndi.

Не уверен, что в этом сценарии требуется некоторая другая реализация для ConnectionFactory.

1 Ответ

0 голосов
/ 24 мая 2019
@Bean public DefaultMessageListenerContainer orderMessageListenerContainer() {
 DefaultMessageListenerContainer endpoint = new DefaultMessageListenerContainer();
 endpoint.setMessageListener(new YourMessageListener());
 endpoint.setDestination("yourDestination");
 endpoint.setConnectionFactory(connectionFactory());
 return orderDefaultJmsListenerContainerFactory().createListenerContainer(endpoint);
}

Решено вручную с помощью DefaultMessageListenerContainer.

...