【问题标题】:ActiveMQ connect, unknow data type: 49ActiveMQ 连接,未知数据类型:49
【发布时间】:2016-02-11 10:02:22
【问题描述】:

我正在使用 ActiveMQ 将文件从一个应用程序发送到另一个应用程序,当消费者尝试连接 ActiveMQ 服务器时遇到此错误。

这里是连接方法

public void connect()
    {
        connectionFactory = new ActiveMQConnectionFactory(
                "tcp://" + Configuration.getInstance().getServerAddress() + 
                ":61616?jms.blobTransferPolicy.defaultUploadUrl=" + "http://" +
                Configuration.getInstance().getServerAddress() + ":8161/fileserver/"
                        + "&connectionTimeout=0&soTimeout=0&soWriteTimeout=0"
                        + "&useInactivityMonitor=false");
        try 
        {
            connection = connectionFactory.createConnection();
            session = (ActiveMQSession) connection.createSession(false,
                                                    Session.AUTO_ACKNOWLEDGE);  
            destination = session.createQueue(Configuration.getInstance().getQueueName());
            consumer = session.createConsumer(destination);
            connection.start();
//          System.out.println("Consumer connected");
        } catch (JMSException e) {
            logger.error("PACS", e);
            e.printStackTrace();
        }
    }

这与我用来将生产者连接到 ActiveMQ 的方法完全相同,在这种情况下它可以完美运行,在消费者端我有以下错误:

javax.jms.JMSException: Unknown data type: 49
        at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSuppo
rt.java:54)
        at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnect
ion.java:1417)
        at org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(Activ
eMQConnection.java:1522)
        at org.apache.activemq.ActiveMQConnection.createSession(ActiveMQConnecti
on.java:328)
        at com.kratossrl.pacs.consumer.CloudPacsConsumer.connect(CloudPacsConsum
er.java:74)
        at com.kratossrl.pacs.consumer.CloudPacsConsumer.start(CloudPacsConsumer
.java:91)
        at com.kratossrl.pacs.consumer.CloudPacsConsumer.run(CloudPacsConsumer.j
ava:135)
        at com.kratossrl.pacs.consumer.CloudPacsConsumer.init(CloudPacsConsumer.
java:57)
        at com.kratossrl.pacs.consumer.CloudPacsConsumer$1.call(CloudPacsConsume
r.java:39)
        at com.kratossrl.pacs.consumer.CloudPacsConsumer$1.call(CloudPacsConsume
r.java:1)
        at javafx.concurrent.Task$TaskCallable.call(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
    Caused by: java.io.IOException: Unknown data type: 49
            at org.apache.activemq.openwire.OpenWireFormat.doUnmarshal(OpenWireForma
    t.java:348)
            at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.
    java:268)
            at org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTranspo
    rt.java:221)
            at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.jav
    a:213)
            at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:
    196)
            ... 1 more
    javax.jms.JMSException: Unknown data type: 49
            at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSuppo
    rt.java:54)
            at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnect
    ion.java:1417)
            at org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(Activ
    eMQConnection.java:1522)
            at org.apache.activemq.ActiveMQConnection.createSession(ActiveMQConnecti
    on.java:328)
            at com.kratossrl.pacs.consumer.CloudPacsConsumer.connect(CloudPacsConsum
    er.java:74)
            at com.kratossrl.pacs.consumer.CloudPacsConsumer.start(CloudPacsConsumer
    .java:91)
            at com.kratossrl.pacs.consumer.CloudPacsConsumer.run(CloudPacsConsumer.j
    ava:135)
            at com.kratossrl.pacs.consumer.CloudPacsConsumer.init(CloudPacsConsumer.
    java:57)
            at com.kratossrl.pacs.consumer.CloudPacsConsumer$1.call(CloudPacsConsume
    r.java:39)
            at com.kratossrl.pacs.consumer.CloudPacsConsumer$1.call(CloudPacsConsume
    r.java:1)
            at javafx.concurrent.Task$TaskCallable.call(Unknown Source)
            at java.util.concurrent.FutureTask.run(Unknown Source)
            at java.lang.Thread.run(Unknown Source)
    Caused by:

 java.io.IOException: Unknown data type: 49
        at org.apache.activemq.openwire.OpenWireFormat.doUnmarshal(OpenWireForma
t.java:348)
        at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.
java:268)
        at org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTranspo
rt.java:221)
        at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.jav
a:213)
        at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:
196)
        ... 1 more

我已经在网上寻找这个错误,但我没有找到 '49' 值。

有人遇到过我的情况或知道这个问题的原因/解决方案吗?

感谢您的建议,并为我的英语不完美感到抱歉

【问题讨论】:

    标签: jms activemq ioexception consumer


    【解决方案1】:

    仔细检查您的 ActiveMQ 版本,客户端似乎比服务器更新,当他们协商协议时,客户端发送服务器不理解的内容并引发异常

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-19
      • 2022-07-20
      • 2016-05-28
      • 2013-01-21
      • 1970-01-01
      • 2013-09-09
      • 2021-04-12
      • 2016-09-16
      相关资源
      最近更新 更多