(一):注意过滤输入和输出参数空白字符 如果出现空白字符解析不了导致调用失败,导致下面的异常: org.codehaus.xfire.fault.XFireFault: Error writing document.. Nested exception is com.ctc.wstx.exc.WstxIOException: Invalid null character 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()一下即可。
(二):连接时注意修改一些参数
比如:HttpClientParams.CONNECTION_MANAGER_TIMEOUT // 设置Timeout 这其实不止是这里需要,任何网络编程都需要注意此事项。当对方服务死了或网络异常, 如果不做timeout处理,按照默认的时间去处理,将会导致服务积压严重甚至被脱死。 HttpClientParams.USE_EXPECT_CONTINUE //client handshake 如果服务不需要传输大量的数据,保持长连接,还是建议关闭掉此功能,设置为false。 否则,在业务量很大的情况下,很容易将服务端和自己都搞的很慢甚至拖死。 HttpClientParams params = new HttpClientParams(); // 避免'Expect: 100-continue' handshake params.setParameter(HttpClientParams.USE_EXPECT_CONTINUE,Boolean.FALSE); //设置ws连接超时时间 params.setParameter(HttpClientParams.CONNECTION_MANAGER_TIMEOUT, 1000); client.setProperty(CommonsHttpMessageSender.HTTP_CLIENT_PARAMS,params); |
转载于:https://blog.51cto.com/guojie/63397