Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qpid Java客户端异常:Java.lang.IllegalArgumentException:未知代码:105_Java_Jms_Qpid - Fatal编程技术网

Qpid Java客户端异常:Java.lang.IllegalArgumentException:未知代码:105

Qpid Java客户端异常:Java.lang.IllegalArgumentException:未知代码:105,java,jms,qpid,Java,Jms,Qpid,我使用的是简单的qpid java客户机,它使用来自代理的消息,并通过SOAP服务将消息发送给代理。在生产者方面,我们将所有数据放入映射,然后将该映射发送给qpid。以下是一个片段: QueueSender conBusQueueSender = (QueueSender) Component.getInstance("conBusQueueSender"); QueueSession queueSession = org.jboss.seam.jms.QueueSession.instance

我使用的是简单的qpid java客户机,它使用来自代理的消息,并通过SOAP服务将消息发送给代理。在生产者方面,我们将所有数据放入映射,然后将该映射发送给qpid。以下是一个片段:

QueueSender conBusQueueSender = (QueueSender) Component.getInstance("conBusQueueSender");
QueueSession queueSession = org.jboss.seam.jms.QueueSession.instance();

Map<String,Object> map = new HashMap<String,Object>();
map.put("applicationId", applicationId);
map.put("soapAction", "urn:changeApplicationStatus");
map.put("soapXML", changeApplicationStatusString);

MapMessage message = queueSession.createMapMessage();
message.setObject("map",map);

conBusQueueSender.send(message);
QueueSender conBusQueueSender=(QueueSender)组件.getInstance(“conBusQueueSender”);
QueueSession QueueSession=org.jboss.seam.jms.QueueSession.instance();
Map Map=newhashmap();
map.put(“applicationId”,applicationId);
map.put(“soapAction”、“urn:changeApplicationStatus”);
put(“soapXML”,changeApplicationStatusString);
MapMessage message=queueSession.createMapMessage();
message.setObject(“map”,map);
conBusQueueSender.send(消息);
在客户端,我们接收消息并试图通过SOAP将其发送到web服务

    while (true) {
    MapMessage m = (MapMessage) consumer.receive();

    @SuppressWarnings("unchecked")
    Map<String, Object> map = (Map<String, Object>) m.getObject("map");

    SOAPMessage message = createSoapMessage(map);

    while (true) {
        try {
            SOAPMessage result = makeSoapCall(message, (String)map.get("applicationId"), (String)map.get("soapAction"));
            if(result.getSOAPBody().hasFault()){
                System.out.println("SOAPFault: "+result.getSOAPBody().getFault().getFaultString());
                System.out.println("SOAPMessage tried to send: " + (String)map.get("soapXML"));
            }

            m.acknowledge();

            // if we came here successfully -> break and process next message
            break;
        } catch (SOAPException e) {
            // if we have exception -> sleep and retry
            e.printStackTrace();
            Thread.sleep(1000L);
            continue;
        }
    }
}
while(true){
MapMessage m=(MapMessage)consumer.receive();
@抑制警告(“未选中”)
Map Map=(Map)m.getObject(“Map”);
SOAPMessage message=createSoapMessage(映射);
while(true){
试一试{
SOAPMessage result=makeSoapCall(message,(String)map.get(“applicationId”),(String)map.get(“soapAction”);
if(result.getSOAPBody().hasFault()){
System.out.println(“SOAPFault:+result.getSOAPBody().getFault().getFaultString());
System.out.println(“SOAPMessage尝试发送:”+(字符串)map.get(“soapXML”);
}
m、 承认();
//如果我们成功来到这里->中断并处理下一条消息
打破
}捕获(SOAPE例外){
//如果出现异常->睡眠并重试
e、 printStackTrace();
睡眠(1000L);
继续;
}
}
}
一切正常,但当消费者试图发送更大一点的消息~66KB时,它只会打印此错误:

73 [main] INFO org.apache.qpid.client.security.DynamicSaslRegistrar - Additional SASL providers successfully registered.
87 [main] INFO org.apache.qpid.client.AMQConnection - Connection:amqp://guest:********@localhost/?brokerlist='tcp://localhost:5672'
314 [main] INFO org.apache.qpid.client.protocol.AMQProtocolSession - Using ProtocolVersion for Session:0-10
330 [main] INFO org.apache.qpid.client.handler.ClientMethodDispatcherImpl - New Method Dispatcher:AMQProtocolSession[null]
341 [main] INFO org.apache.qpid.client.AMQConnection - Connecting with ProtocolHandler Version:0-10
414 [IoReceiver - localhost/127.0.0.1:5672] INFO org.apache.qpid.transport.ClientDelegate - The broker does not support the configured connection idle timeout of 120 sec,  using the brokers max supported value of 0 sec instead.
420 [main] INFO org.apache.qpid.client.AMQConnection - Connected with ProtocolHandler Version:0-10
Connection established to amqp://guest:guest@localhost/?brokerlist='tcp://localhost:5672'
443 [main] INFO org.apache.qpid.client.AMQSession - Created session:org.apache.qpid.client.AMQSession_0_10@112c3327
Session created...
476 [main] INFO org.apache.qpid.client.AMQSession - Prefetching delayed existing messages will not flow until requested via receive*() or setML().
Consumer initialized...
481 [main] INFO org.apache.qpid.client.AMQSession.Dispatcher - Dispatcher-Channel-0 created
481 [Dispatcher-Channel-0] INFO org.apache.qpid.client.AMQSession.Dispatcher - Dispatcher-Channel-0 started
492 [Dispatcher-Channel-0] ERROR org.apache.qpid.client.BasicMessageConsumer - Caught exception (dump follows) - ignoring...
java.lang.IllegalArgumentException: unknown code: 105
    at org.apache.qpid.transport.codec.AbstractDecoder.getType(AbstractDecoder.java:354)
    at org.apache.qpid.transport.codec.AbstractDecoder.readMap(AbstractDecoder.java:287)
    at org.apache.qpid.transport.codec.BBDecoder.readMap(BBDecoder.java:34)
    at org.apache.qpid.transport.codec.AbstractDecoder.read(AbstractDecoder.java:455)
    at org.apache.qpid.transport.codec.AbstractDecoder.readMap(AbstractDecoder.java:288)
    at org.apache.qpid.transport.codec.BBDecoder.readMap(BBDecoder.java:34)
    at org.apache.qpid.client.message.AMQPEncodedMapMessage.populateMapFromData(AMQPEncodedMapMessage.java:96)
    at org.apache.qpid.client.message.JMSMapMessage.<init>(JMSMapMessage.java:71)
    at org.apache.qpid.client.message.AMQPEncodedMapMessage.<init>(AMQPEncodedMapMessage.java:52)
    at org.apache.qpid.client.message.AMQPEncodedMapMessageFactory.createMessage(AMQPEncodedMapMessageFactory.java:36)
    at org.apache.qpid.client.message.AbstractJMSMessageFactory.create010MessageWithBody(AbstractJMSMessageFactory.java:135)
    at org.apache.qpid.client.message.AbstractJMSMessageFactory.createMessage(AbstractJMSMessageFactory.java:166)
    at org.apache.qpid.client.message.MessageFactoryRegistry.createMessage(MessageFactoryRegistry.java:150)
    at org.apache.qpid.client.BasicMessageConsumer_0_10.createJMSMessageFromUnprocessedMessage(BasicMessageConsumer_0_10.java:221)
    at org.apache.qpid.client.BasicMessageConsumer_0_10.createJMSMessageFromUnprocessedMessage(BasicMessageConsumer_0_10.java:47)
    at org.apache.qpid.client.BasicMessageConsumer.notifyMessage(BasicMessageConsumer.java:693)
    at org.apache.qpid.client.BasicMessageConsumer_0_10.notifyMessage(BasicMessageConsumer_0_10.java:205)
    at org.apache.qpid.client.BasicMessageConsumer_0_10.notifyMessage(BasicMessageConsumer_0_10.java:47)
    at org.apache.qpid.client.AMQSession$Dispatcher.notifyConsumer(AMQSession.java:3392)
    at org.apache.qpid.client.AMQSession$Dispatcher.dispatchMessage(AMQSession.java:3336)
    at org.apache.qpid.client.AMQSession$Dispatcher.access$900(AMQSession.java:3117)
    at org.apache.qpid.client.AMQSession.dispatch(AMQSession.java:3110)
    at org.apache.qpid.client.message.UnprocessedMessage.dispatch(UnprocessedMessage.java:55)
    at org.apache.qpid.client.AMQSession$Dispatcher.run(AMQSession.java:3264)
    at java.lang.Thread.run(Thread.java:680)
73[main]INFO org.apache.qpid.client.security.dynamicsaslregistar-其他SASL提供程序已成功注册。
87[main]INFO org.apache.qpid.client.AMQConnection-连接:amqp://guest:********@localhost/?brokerlist=tcp://localhost:5672'
314[main]INFO org.apache.qpid.client.protocol.AMQProtocolSession-使用会话的协议版本:0-10
330[main]INFO org.apache.qpid.client.handler.ClientMethodDispatcherImpl-新方法调度程序:AMQProtocolSession[null]
341[main]INFO org.apache.qpid.client.AMQConnection-与ProtocolHandler连接版本:0-10
414[IoReceiver-localhost/127.0.0.1:5672]INFO org.apache.qpid.transport.ClientDelegate-代理不支持配置的连接空闲超时120秒,而是使用代理支持的最大值0秒。
420[main]INFO org.apache.qpid.client.AMQConnection-已连接到ProtocolHandler版本:0-10
已建立到的连接amqp://guest:guest@localhost/?brokerlist=tcp://localhost:5672'
443[main]INFO org.apache.qpid.client.AMQSession-创建的会话:org.apache.qpid.client.AMQSession_0_10@112c3327
已创建会话。。。
476[main]INFO org.apache.qpid.client.AMQSession-预取延迟的现有消息在通过receive*()或setML()请求之前不会流动。
消费者已初始化。。。
481[main]INFO org.apache.qpid.client.AMQSession.Dispatcher-已创建Dispatcher-Channel-0
481[Dispatcher-Channel-0]INFO org.apache.qpid.client.AMQSession.Dispatcher-已启动Dispatcher-Channel-0
492[Dispatcher-Channel-0]错误org.apache.qpid.client.BasicMessageConsumer-捕获异常(转储随后)-忽略。。。
java.lang.IllegalArgumentException:未知代码:105
位于org.apache.qpid.transport.codec.AbstractDecoder.getType(AbstractDecoder.java:354)
位于org.apache.qpid.transport.codec.AbstractDecoder.readMap(AbstractDecoder.java:287)
位于org.apache.qpid.transport.codec.BBDecoder.readMap(BBDecoder.java:34)
位于org.apache.qpid.transport.codec.AbstractDecoder.read(AbstractDecoder.java:455)
位于org.apache.qpid.transport.codec.AbstractDecoder.readMap(AbstractDecoder.java:288)
位于org.apache.qpid.transport.codec.BBDecoder.readMap(BBDecoder.java:34)
位于org.apache.qpid.client.message.AMQPEncodedMapMessage.populateMapFromData(AMQPEncodedMapMessage.java:96)
位于org.apache.qpid.client.message.JMSMapMessage.(JMSMapMessage.java:71)
位于org.apache.qpid.client.message.AMQPEncodedMapMessage.(AMQPEncodedMapMessage.java:52)
位于org.apache.qpid.client.message.AMQPEncodedMapMessageFactory.createMessage(AMQPEncodedMapMessageFactory.java:36)
位于org.apache.qpid.client.message.AbstractJMSMessageFactory.create010MessageWithBody(AbstractJMSMessageFactory.java:135)
位于org.apache.qpid.client.message.AbstractJMSMessageFactory.createMessage(AbstractJMSMessageFactory.java:166)
位于org.apache.qpid.client.message.MessageFactoryRegistry.createMessage(MessageFactoryRegistry.java:150)
位于org.apache.qpid.client.BasicMessageConsumer_0_10.createJMSMessageFromUnprocessedMessage(BasicMessageConsumer_0_10.java:221)
位于org.apache.qpid.client.BasicMessageConsumer_0_10.createJMSMessageFromUnprocessedMessage(BasicMessageConsumer_0_10.java:47)
位于org.apache.qpid.client.BasicMessageConsumer.notifyMessage(BasicMessageConsumer.java:693)
位于org.apache.qpid.client.BasicMessageConsumer_0_10.notifyMessage(BasicMessageConsumer_0_10.java:205)
位于org.apache.qpid.client.BasicMessageConsumer_0_10.notifyMessage(BasicMessageConsumer_0_10.java:47)
位于org.apache.qpid.client.AMQSession$Dispatcher.notifyConsumer(AMQSession.java:3392)
位于org.apache.qpid.client.AMQSession$Dispatcher.dispatchMessage(AMQSession.java:3336)
位于org.apache.qpid.client.AMQSession$Dispatcher.access$900(AMQSession.java:3117)
位于org.apache.qpid.client.AMQSession.dispatch(AMQSession.java:3110)
位于org.apache.qpid.client.message.UnprocessedMessage.dispatch(UnprocessedMessage.java:55)
位于org.apache.qpid.client.AMQSession$Dispatcher.run(AMQSession.java:3264)
运行(Thread.java:680)
我在那里