使用XFire调用WebService需注意的事项
版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。
|
(一):注意过滤输入和输出参数空白字符
如果出现空白字符解析不了导致 调用失败,导致下面的异常:
org.codehaus.xfire.fault.XFireFault: Error writing document.. nested exception is com.ctc.wstx.exc.WstxIOException: Invalid null ch aracter in text to output
at org.codehaus.xfire.fault.XFireFault.createFault(XFireFault.java:89)
at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:83)
at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:114)
at org.codehaus.xfire.client.Client.invoke(Client.java:336)
at org.codehaus.xfire.client.Client.invoke(Client.java:368)
String.trim()一下即可。
(二):连接时注意修改一些参数 比如:HttpClientP arams.CONNECTION_MANAGER_TIMEOUT // 设置Timeout 这其实不止是这里需要,任何网络编程都需要注意此事项。当对方服务死了或网络异常, 如果不做timeout处理,按照 默认的时间去处理,将会导致服务积压严重甚至被脱死。 HttpClientP arams.USE_EXPECT_CONTINUE //client handshake 如果服务不需要传输大量的数据,保持长连接,还是建议 关闭掉此 功能,设置为false。 否则,在业务量很大的情况下,很容易将服务端和自己都搞的很慢甚至拖死。 HttpClientP arams p arams = new HttpClientP arams(); // 避免'Expect: 100-continue' handshake p arams.setP arameter(HttpClientP arams.USE_EXPECT_CONTINUE,Boolean.FALSE); //设置ws连接超时时间 p arams.setP arameter(HttpClientP arams.CONNECTION_MANAGER_TIMEOUT,1000); client.setProperty(CommonsHttpMessageSender.HTTP_CLIENT_P araMS,p arams);
|
|
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。