发送消息,在发送者的应用中定义了queue:
<amq:queue name="createQueue"
physicalName="org.apache.activemq.spring.Test.spring.embedded" />
<amq:queue name="saveQueue"
physicalName="org.apache.activemq.spring.Test.spring.embedded" />
在接收者的应用中也定义了:
<amq:queue name="createQueue"
physicalName="org.apache.activemq.spring.Test.spring.embedded" />
<amq:queue name="saveQueue"
physicalName="org.apache.activemq.spring.Test.spring.embedded" />
即使二个应用跑在一个jvm里,但它们的queue仍然是不同.即发送者发送消息到queue,接收者不一定能收到(测试是有时可能会收到)。最终解决不使用嵌入式的queue,而是在jms服务器上先建立createQueue,saveQueue,然后,将每个应用中的配置改为:
<amq:queue name="createQueue"
physicalName="createQueue" />
<amq:queue name="saveQueue"
physicalName="saveQueue" />
这样就能保证收发的目的地是一致的。
分享到:
相关推荐
2. **发送消息**:使用Ajax,客户端可以向ActiveMQ发布消息,这通常涉及构建JMS消息对象,设置目的地(如主题或队列),然后通过Ajax请求发送到服务器。 3. **接收消息**:同样,客户端会监听服务器的响应,一旦有新...
5. **发送消息**:在需要发送消息的地方,创建一个`JmsTemplate`,通过它调用`send`方法,传入目的地和消息内容。 6. **事务管理**:如果需要,可以配置Spring的事务管理,确保消息的发送或消费是在事务保护下的,...
5. **MessageTemplate**:Spring的JmsTemplate提供了一种简单的API,用于发送消息到目的地,接收消息,或者执行收发操作。 **三、优化整合的关键点** 1. **连接池**:为提高性能,可以使用PooledConnectionFactory...
6. **数据序列化与反序列化**:Java源码中可能使用了对象序列化技术,将聊天消息转化为字节流在网络中传输,到达目的地后再反序列化回原始对象。 7. **用户认证与安全**:考虑到多用户环境,可能涉及用户身份验证、...
这包括定义目的地(如队列或主题)、连接工厂和消息驱动bean的配置。 7. **异常处理与事务管理**:由于EJB和JMS都支持事务管理,bolid_jms可能会利用这些特性确保消息处理的一致性。例如,如果处理消息时发生错误,...