Я написал приложение Spring Boot, которое направлено на отправку и использование сообщения от JBoss Wildfly 10 ActiveMQ Artemis (ПРИМЕЧАНИЕ: не Apache ActiveMQ 5.x). Я запускаю этот код через Spring Tool Suite.
Я также установил JBoss Wildfly 10 в своей локальной системе (на порту 8080) и запустил то же самое в профиле standalone-full.xml
, чтобы создать очередь с именем TestQ
в подсистемах обмена сообщениями Wildfly.
Затем я использовал JMSTemplate
в коде загрузки Spring для отправки и использования сообщения в вышеупомянутой очереди со следующими вещами в application.properties
:
spring.activemq.username=admin
spring.activemq.username=admin
spring.activemq.broker-url=http://localhost:8080
Однако при выполнении кода я получаю Could not send message
ошибку.
Не могли бы вы подсказать, какие изменения потребуются?
Моя основная цель - отправить и потребить сообщение из этой внешней очереди с помощью Spring Boot.
Я пробовал альтернативы в сети, но каждый полученный мной пример относится к Apache ActiveMQ, а не к ActiveMQ Artemis, встроенному в JBoss Wildfly, который требуется.
У меня есть 2 класса ниже:
1.
@SpringBootApplication
@EnableJms
public class App {
@Bean
public JmsListenerContainerFactory<?> myFactory(ConnectionFactory connectionFactory,
DefaultJmsListenerContainerFactoryConfigurer configurer) {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
configurer.configure(factory, connectionFactory);
return factory;
}
public static void main(String[] args) {
// Launch the application
ConfigurableApplicationContext context = SpringApplication.run(App.class, args);
JmsTemplate jmsTemplate = context.getBean(JmsTemplate.class);
System.out.println("Sending a JMS message.");
jmsTemplate.convertAndSend("sampleQueue", "Hello world!");
}
}
2.
@Component
public class ReceiveMessage {
@JmsListener(destination = "sampleQueue")
public void receiveMessage(String msg) {
System.out.println("Received :" + msg);
}
}
org.apache.activemq.artemis
ведение журнала на ОТЛАДКУ (как на клиенте, так и на сервере, если разные хосты / разные приложения WildFly), перезапустите серверы приложений и повторно запустите несколько сквозных тестов. Это, вероятно, самый быстрый / самый эффективный способ определить: 1) кто терпит неудачу и 2) что именно является ошибкой. - person paulsm4   schedule 28.05.2019