问题描述
下面是我下面的 Spring Boot 应用程序,我试图将消息发送到队列,但它总是在 jmsTemplate
上抛出 NULL。每个 Spring 文档 jmsTemplate
应该自动配置,但它没有发生。这是我在这里做错了吗?
服务类
@Service
@EnableJms
public class CTCall {
@Autowired
private JmsTemplate jmsTemplate; //THIS ALWAYS Throw NULL
public String send() {
try {
System.out.println("jmsTemplate: " + jmsTemplate);
jmsTemplate.convertAndSend("MYQUEUE","Hello World!");
return "OK";
} catch (Exception ex) {
ex.printStackTrace();
return "FAIL";
}
}
}
application.properties
ibm.mq.queueManager=MYMGR
ibm.mq.channel=MYQUUE
ibm.mq.connName=MYHOST(1414)
ibm.mq.user=
ibm.mq.password=
POM
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>com.ibm.mq</groupId>
<artifactId>mq-jms-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
解决方法
您必须将@EnableJms 添加到@SpringBootApplication 或@Configuration 类