ActiveMQ-从JMS远程主机接收时无法识别对象

问题描述 投票:0回答:1

我正在两台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(...

java jms activemq instanceof activemq-artemis
1个回答
0
投票

我的猜测是这是某种类型的类加载问题,但是很难用您提供的信息来分辨。

© www.soinside.com 2019 - 2024. All rights reserved.