解决:A component required a bean of type 'javax.jms.Queue' that could not be found.
程序员文章站
2022-06-02 22:15:58
...
1. 情景描述:只是想简单写个 ActiveMQ 的小样,启动服务却报错:
Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.
2018-08-01 16:10:39.858 ERROR 4928 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
A component required a bean of type 'javax.jms.Queue' that could not be found.
Action:
Consider defining a bean of type 'javax.jms.Queue' in your configuration.
2. 原因和解决:
如提示信息中说的一样,Queue 类没有纳入spring 的管理。加上注解: @Bean 就行了。
错误写法:
/**
* @author silence
* @date 2018/8/1 10:42
*/
@Component
public class MessageQueue{
public Queue queue(){
return new ActiveMQQueue("my-message");
}
}
正确写法:
package gentle.activemq;
import org.apache.activemq.command.ActiveMQQueue;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import javax.jms.Queue;
/**
* @author silence
* @date 2018/8/1 10:42
*/
@Component
public class MessageQueue{
@Bean //返回一个名为 my-message 的队列,并且注册为 bean
public Queue queue(){
return new ActiveMQQueue("my-message");
}
}
3. 成功启动服务:
上一篇: 2017-12-06 ACM校级竞赛心得
下一篇: 阿里巴巴20亿美元全资收购网易考拉
推荐阅读
-
A component required a bean of type ‘XXX‘ that could not be found 解决办法
-
解决 A component required a bean of 'XXX.RoleService' that could not be found.
-
解决报错 :A component required a bean of type 'gentle.test.Show' that could not be found
-
解决:A component required a bean of type 'javax.jms.Queue' that could not be found.