做Web services技术作业的时候,遇到了这个异常。通过查找相关资料,终于解决了,详情见[1]。
异常描述:
org.apache.axis2.AxisFault: The input stream for an incoming message is null.
at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:92)
at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:67)
at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:354)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:417)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
ADB Client的解决方法:
// stub 是利用Axis2 wsdl2java命令生成的*Stub.java类的实例
stub._getServiceClient().getOptions().setProperty(HTTPConstants.CHUNKED,"false");
这句话的作用是,设置ADB Client不使用Chunked Encoding。原因是.NET Development Server很可能不支持HTTP 1.1的Chunked Encoding。因此,将这个开关置为FALSE。
[1] 中还提到了如何解决JAXWS Client的上述异常问题,研究中... ...
[1] http://old.nabble.com/The-input-stream-for-an-incoming-message-is-null-td24067861.html