我正在两台JBoss服务器上设置JMS请求答复。在客户端中,我使用camel-jms和Fuse路由来创建呼叫。
.setExchangePattern(ExchangePattern.InOut)
.to(camelContext.getEndpoint(JMS_BEANID, JmsQueueEndpoint.class))
基本上,它将创建临时队列并发送到服务器。在服务器中,我创建MessageListener
的实现以侦听消息。
从调试视图message.getJMSReplyTo()
返回ActiveMQTemporaryQueue
的实例。但是,当我尝试检查message.getJMSReplyTo() instanceof ActiveMQTemporaryQueue
时会返回false
。我尝试自己创建ActiveMQTemporaryQueue
,支票按预期方式返回true
,例如:
public void onMessage(Message message) {
Destination replyTo = message.getJMSReplyTo();
if (replyTo instanceof ActiveMQTemporaryQueue) {
// false, although the debugger show it is ActiveMQTemporaryQueue object
}
Destination test = new ActiveMQTemporaryQueue("localhost", "testQueue", (ActiveMQSession)session);
if (test instanceof ActiveMQTemporaryQueue) {
// true
}
}
客户端和服务器在两个不同的Maven项目中(两次不同的战争,部署在不同的服务器上,相同的工作空间)。>>
我不知道发生了什么。您有什么建议吗?
我正在两台JBoss服务器上设置JMS请求答复。在客户端中,我使用camel-jms和Fuse路由创建呼叫。 .setExchangePattern(ExchangePattern.InOut).to(camelContext.getEndpoint(...
我的猜测是这是某种类型的类加载问题,但是很难用您提供的信息来分辨。