Метод JMSTemplate convertAndSend не помещает сообщения в очередь - PullRequest
0 голосов
/ 06 июня 2019

Я новичок в 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

Нет исключений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...