我正在嘗試將簡單訊息從
另外,我可以登錄控制臺(用戶名:artemis;密碼:simetraehcapa;):

發件人應用程式中的其他配置:
@EnableAsync
@EnableScheduling
@Configuration
public class AsyncConfig {
public static final String EXECUTOR = "SchedulerExecutor";
@Bean(name = EXECUTOR)
public Executor asyncExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(2);
executor.setMaxPoolSize(2);
executor.setQueueCapacity(50);
executor.setThreadNamePrefix(EXECUTOR "-");
executor.initialize();
return executor;
}
}
和
@Configuration
public class JmsConfig {
public static final String QUEUE = "queue";
@Bean // Serialize message content to json using TextMessage
public MessageConverter jacksonJmsMessageConverter(ObjectMapper objectMapper) {
MappingJackson2MessageConverter converter = new MappingJackson2MessageConverter();
converter.setTargetType(MessageType.TEXT);
converter.setTypeIdPropertyName("_type");
converter.setObjectMapper(objectMapper);
return converter;
}
}
和
spring.artemis.mode=native
spring.artemis.host=localhost
spring.artemis.port=8161
spring.artemis.user=artemis
spring.artemis.password=simetraehcapa
最后,我實際發送訊息的方式是通過簡單的GET請求(http://localhost:8080/send):
@GetMapping("/send")
public void sendMessage(){
Student s = new Student("MIKE");
this.jmsTemplate.convertAndSend(JmsConfig.QUEUE, s);
}
和監聽類:
@Component
@EnableJms
public class Listener {
@Autowired
private JmsTemplate jmsTemplate;
@JmsListener(destination = "queue")
public void listen(Student student){
System.out.println(student);
}
}
所以我的問題是:
- 如何配置會話工廠?
- 我是否錯過了一些我不知道的其他配置?
uj5u.com熱心網友回復:
我相信問題出在您的配置中的這一行:
spring.artemis.port=8161
這指向 ActiveMQ Artemis 中嵌入式 Web 服務器使用的 HTTP 埠。這不適用于 JMS 客戶端。你應該使用:
spring.artemis.port=61616
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/475486.html
