OperationsClient.execute(true)将数据正确发送到IBM MQ队列,但引发axis2异常

时间:2018-10-03 15:42:56

标签: web-services soap wsdl ibm-mq axis2

我正在尝试通过WSDL生成的客户机存根将数据发送到IBM MQ Queue。在存根中,在此调用_operationsClient(true)上,它将调用重写的调用,此调用将与Queue Manager建立连接,并将数据发送到putQueue。 但是,当调用调用完成时,它将引发stackTrace异常,如下所示:

pip install --update

在Google上对此不太满意。 尝试过此axis2 Fault: The input stream for an incoming message is null,但对我不起作用。 我正在推测标头设置为与执行调用标头字段更改之前和之后一样的错误,但是随后如何正确发送数据。

1 个答案:

答案 0 :(得分:0)

对于axis2服务(来自体系结构),我们需要设置2个传输,即TransportSender和transportReceiver。如果设置正确,则不会出现此错误。

但是,如果您无法设置它,则有解决方法。 收到响应后,在messageContext中手动设置输入流。这应该可以解决问题。(在下面找到代码)

String response = "";//your manual response string
byte[] inputBuffer = new byte[4096]; 
DatagramPacket packet = new DatagramPacket(inputBuffer, inputBuffer.length);
msgContext.setProperty(MessageContext.TRANSPORT_IN, new ByteArrayInputStream(response.getBytes(), 0, response.getBytes().length));