Я новичок в Spring и JMS. Я расскажу о попытках и моих выводах, которые могут помочь вам определить актуальную проблему. Актуальный журнал вы можете найти внизу вопроса, если вам скучно читать это :)
Вот мое краткое изложение проблемы
Я работаю над отправкой сообщений в очередь Tibco. Потребительская часть уже реализована. Но когда я пытаюсь отправить сообщения с помощью jmsTemplate.convertAndSend, это не работает.
Мой класс SpringBootApplication содержит ниже Beans
public Jaxb2Marshaller marshaller() {
Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
marshaller.setPackagesToScan("something", "java.lang");
return marshaller;
}
@Bean
public DefaultJmsListenerContainerFactory jmsListenerContainerFactory(JmsErrorHandler errorHandler) {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
factory.setConnectionFactory(connectionFactory());
factory.setDestinationResolver();
factory.setErrorHandler(errorHandler);
factory.setMessageConverter(messageConverter());
return factory;
}
private MessageConverter messageConverter() {
MarshallingMessageConverter converter = new MarshallingMessageConverter();
converter.setMarshaller(marshaller());
converter.setUnmarshaller(marshaller());
return converter;
}
private ConnectionFactory connectionFactory() {
log.info("tibcoConnection details "+ tibcoConnection);
TibjmsConnectionFactory connectionFactory = new TibjmsConnectionFactory(tibcoConnection.getUrl());
connectionFactory.setUserName(tibcoConnection.getUserName());
connectionFactory.setUserPassword(tibcoConnection.getPassword());
return connectionFactory;
}
Моя попытка
Я удаляю DefaultJmsListenerContainerFactory и просто добавляю @Bean ConnectionFactory, затем мое сообщение начало выталкивать в очередь (я создал фиктивного потребителя и вставил фиктивные сообщения для его запуска). Но получаю исключения у потребителя, когда я пытаюсь с реальной очередью вместо фиктивной, которую я создал. S0 ясно, что DefaultJmsListenerContainerFactory (как мне кажется) требуется
Другие наблюдения
Когда мое приложение запускается, я вижу, что соединение tibco устанавливается
tibcoConnection подробнее TibcoConnection (url = tcp: // SOMEIP, имя пользователя = ИМЯ ПОЛЬЗОВАТЕЛЯ, пароль =)
Вот журнал, когда метод jmsTemplate.convertAndSend вызывает и не удается отправить в очередь (ничего не изменилось в вызове SpringBootApplication)
15:59:11.344 [DefaultMessageListenerContainer-1] INFO o.a.activemq.broker.BrokerService - Using Persistence Adapter: MemoryPersistenceAdapter
15:59:11.398 [JMX connector] INFO o.a.a.broker.jmx.ManagementContext - JMX consoles can connect to service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
15:59:11.514 [DefaultMessageListenerContainer-1] INFO o.a.activemq.broker.BrokerService - Apache ActiveMQ 5.15.9 (localhost, ID:LT0095370-57773-1559816951377-0:1) is starting
15:59:11.521 [DefaultMessageListenerContainer-1] INFO o.a.activemq.broker.BrokerService - Apache ActiveMQ 5.15.9 (localhost, ID:LT0095370-57773-1559816951377-0:1) started
15:59:11.521 [DefaultMessageListenerContainer-1] INFO o.a.activemq.broker.BrokerService - For help or more information please see: http://activemq.apache.org
15:59:11.576 [DefaultMessageListenerContainer-1] INFO o.a.a.broker.TransportConnector - Connector vm://localhost started
Нет исключений.