默认客户端传输处理程序在以DIME格式发送和接收附件时出现问题。对于大型附件(超过1MB或8个块),会出现关于损坏的流数据的异常,或者在预期有更多DIME块时结束物理流。
此问题的解决方法是切换到使用commons-http-client的传输处理程序。
为此,从jakarta站点下载commons-http-client-3.0和commons-codec 1.3 ,将jar添加到客户端类路径,并修改axis-1.4.jar包的文件org\apache\axis\client\client-config.wsdd文件以确保它使用正确的处理程序
-
<deployment name =“defaultClientConfig”...>
-
<transport name =“http”pivot =“java:org.apache.axis.transport.http.CommonsHTTPSender”/>
-
-
</部署>
如果您深入研究apache axis 源代码,您将看到这实际上是一个网络错误。有一个保存网络代码的变量。此变量在axis 类的开头分配为零。在某些时候,axis 的开发人员读取HTTP响应并将HTTP代码分配给此网络代码变量。但是沿着类的流程发生异常并且该网络代码保持为零。您接下来的空值是实际的错误消息描述,它是null,因为异常没有为它分配消息(就像它在零时发生的那样)。
WebService returnCode :0 faultString:(0)null的问题
原文:https://www.cnblogs.com/jovan/p/13858806.html