电子153
你交于spring管理的对象(如@Autowired @Resource 引入的对象 )所需的对象需要纳入spring管理。如此项目中的ProducerService对象交于spring管理,那么他所需的 jmsTemplate,destination对象 需要交于spring管理,由spring的依赖传递可知道jmsTemplate和destination对象 所需的connectionFactory,targetConnectionFactory 也需交于spring管理
慕莱坞7245284
目的地哪里写错了吧
Tuzki
读者123
首先你确认你的生产者推送成功了没?如果成功了,记得主题模式下,是需要先启动消费者才能有效的获取推送信息
北极的大企鹅
错误原因找到是属性写错了
<bean id="jmsContainer" class=" org.springframework.jms.listener.DefaultMessageListenerContainer"> <property name="connectionFactory" ref="connectionFactory"/> <property name="destination" ="queueDestination"/> <property name="destination" ref="queueDestination"/>这是正确的 <property name="destination" ref="queueDestination"/> <property name="messageListener" ref="consumerMessageListener"/> </bean>
qq_一碗米汤_0
就是给队列或者主题起个名字,不信的话你改个名字运行一下再去AMQ可视化界面去看看
慕工程4045380
找到问题了,是因为发送消息的时候destination写成String.valueof(destination),这样jms收到的消息就在queue://queue,而consumer依旧从queue订阅,就无法消费消息。
浅笑若风
ProducerServiceImpl中不要用String.ValueOf(),消息在queue://queue中,接受消息是从queue中接受,,,,所以没有消息
慕粉1612004826
win64里面的wrapper.conf文件修改下配置,wrapper.java.command=java 改为java.exe的真实路径
比如:wrapper.java.command=E:/software/jdk1.8.0_101/jdk1.8.0_101/bin/java.exe
qq_云端_8
多打印了一遍.
qq_云端_8
public void sendMessage(final String message) { //使用jmsTemplate发送消息
jmsTemplate.send(destination, new MessageCreator(){
//创建一个消息
public Message createMessage(Session session) throws JMSException {
TextMessage textMessage = session.createTextMessage(message);
System.out.println("发送消息:"+textMessage.getText());
return textMessage;
}
});
System.out.println("发送消息:"+message);
}这个函数里你输出了两次,老师视频spring-jms演示1大概3分半你可以看一下
无敌小哥3869509
自己写一写,印象更深刻