Я использую поиск JNDI для получения объекта подключения для Websphere MQ Broker на сервере tomcat. Я использую JmsTemplate для отправки сообщений в очередь на WMQ Broker и пытаюсь избежать конфигурации на основе Spring Xml, и по этой причине я настроил файл Spring boot application.properties, чтобы указать JNDI ищу имя. Ниже - свойство из файла application.properties.
spring.jms.jndi-name= java:comp/env/XXXX
Я использую компонент Spring для определения JmsTemplate, и ниже приведен его код.
@Configuration
public class JmsMessageTemplateBean {
//@Value("${spring.jms.jndi-name}")
//private ConnectionFactory connectionFactory;
@Bean
public JmsTemplate jmsTemplate() throws Exception{
JmsTemplate jmsMessagingTemplate = new JmsTemplate();
jmsMessagingTemplate.setDefaultDestinationName("Some Queue");
jmsMessagingTemplate.setConnectionFactory(connectionFactory);
return jmsMessagingTemplate;
}
}
у меня есть пара вопросов:
1. Как прочитать свойство JNDI из файла application.properties и установить для объекта Connection значение Jms Template в указанном выше bean-компоненте.
2. Я заметил, что объект подключения из поиска JNDI - это MQQueueConnectionFactory
, а из того, что я исследовал, JmsTemplate
поддерживает объект javax.jms.ConnectionFactory
. есть ли способ преобразовать объект MQQueueConnectionfactory
в javax.jms.Connectionfactory
.
Оцените ваши ответы.
JmsTemplate
с автоматической конфигурацией Spring Boots.MQQueueConnectionFactory
- этоConnectionFactory
. - person M. Deinum   schedule 18.07.2015