首页 > 解决方案 > jmsTemplate 在 Spring Boot 中不会自动初始化

问题描述

下面是我正在尝试将消息发送到 Queue 的以下 Spring Boot 应用程序,但它总是在jmsTemplate. 每个 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";
        }
    }
}

应用程序属性

ibm.mq.queueManager=MYMGR
ibm.mq.channel=MYQUUE
ibm.mq.connName=MYHOST(1414)
ibm.mq.user=
ibm.mq.password=

聚甲醛

  <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>

标签: javaspringspring-bootspring-jmsjmstemplate

解决方案


您必须将 @EnableJms 添加到 @SpringBootApplication 或 @Configuration 类


推荐阅读