因此我知道JMS的核心组件是:
据我所知,消息是与其他实体(必须使用这些数据的其他产品)发送和共享的,消息可以有不同的形状:TextMessage、ObjectMessage、MapMessage、BytesMessage和StreamMessage。
好的,根据我的理解,JMS核心组件的目的地组件定义了接收消息的人和发送消息的逻辑。
所以我知道我有两种目的地:
>
队列:定义点对点消息。根据我所了解的情况,我可以有一些Message Producer将生成的消息放入队列,然后我有一些MessageConsumer来消费Message。每个消息可以由单个MessageConsumer使用。
相反,在第二种情况下,Consumer-1可以Consumer由Producer-1和Produer-2生成的消息,因为MessageProducer在队列中放了一条消息,指定谁是必须使用该消息的MessageConsumer。
具体是怎么运作的?正确的逻辑是什么?
如果我有2个分别命名为Producer-1和Producer-2的MessageProducer,我需要有2个分别命名为Consumer-1和Consumer-2的MessageConsumer,其中Consumer-1使用Producer-1生成的消息,而Consumer-2使用**Producer-2生成的消息)。
不是真的。消息使用者连接到队列,它将接收放入队列中的所有消息,而不管生产者是谁。因此,如果有两个生产者在队列中分别放入一条消息,那么该消息将被连接到它的单个消费者使用。
如果您希望由不同的生产者生成针对特定消费者的消息,您应该使用一个称为“消息选择器”的概念。要实现这一点,消息生产者应该向消息中添加“头”(系统头或自定义头),然后消息监听器可以指定它们接收与特定头匹配的消息。
Artemis 2.2.0的新版本有一个,它显然是在内部消息ID(而不是JMS消息ID)上操作的。 问题是:如何在Artemis Version2.x中使用JMS消息ID将消息从一个队列移动到另一个队列?
我们的环境由3个jboss服务器组成(门户、jms、协调)。 协调服务器托管骆驼路由,该路由具有消耗自队列(SLAQueue)的路由 JMS服务器托管了我们的所有队列 最近,我们发现了一个错误,即托管在JMS服务器上的TaskQueue中的一些消息没有传递到门户服务器上的MDB。由于某些原因,它们被卡住了,当我们重新启动JMS服务器时,卡住的消息被传递 为了进行调查,我们在“org.apache.
因此,我使用Spring integration链接JMS和ActiveMQ,如下所示:- 如何使其工作,以便发送到此队列并从中接收消息?请帮忙。
我试图将一些消息从JMS代码放到本地队列管理器中定义的本地队列中。我在WebSphere MQ中定义了一个本地队列,并使用JMS代码放置消息。我在这里做得对吗。我没有看到WebSphere队列中的消息。 以下是代码:
我正在尝试创建一条骆驼路线,它将: 从队列中获取JMS消息,消息体是SOAP请求 这是我的代码: endpoint配置: 我觉得我误解了这个场景中骆驼工作的一些基本原理。似乎是soap信封的存在导致了此问题。我曾假设camel能够获取原始soap消息并将其转换为cxfendpoint的正确消息格式。 有人能向我解释一下如何将SOAP请求传递给CXFendpoint吗?
我设置了一个EJB项目,使用JMS将持久性实体对象发送到MDB。我使用JBoss EAP 7,使用Apache ActiveMQ作为消息传递提供程序。我像这样设置ConnectionFactory和队列: 这是我的消息生成器,它接收“Account”实体对象作为参数并将其发送到队列: EntityEnqueueBean。Java语言 MDB从队列接收消息并对其进行处理: java账户 不确定我做错