使用XFire调用WebService需注意的事项
发布时间:2020-12-16 23:20:08 所属栏目:安全 来源:网络整理
导读:(一):注意过滤输入和输出参数空白字符 如果出现空白字符解析不了导致调用失败,导致下面的异常: org.codehaus.xfire.fault.XFireFault: Error writing document.. Nested exception is com.ctc.wstx.exc.WstxIOException: Invalid null character in text t
(一):注意过滤输入和输出参数空白字符
如果出现空白字符解析不了导致调用失败,导致下面的异常: 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);
?
以上的做法在实际项目中发现行不通,现修改为: ??????? URL _url = new URL(url);??????? HttpURLConnection httpConnection = (HttpURLConnection)_url.openConnection(); ??????? httpConnection.setReadTimeout(20000);//设置http连接的读超时,单位是毫秒 ??????? httpConnection.connect(); ??????? Client _client = new Client(httpConnection.getInputStream(),null); ??????? _client.setProperty(CommonsHttpMessageSender.HTTP_TIMEOUT,String.valueOf(?20000 ));//设置发送的超时限制,单位是毫秒; ??????? _client.setProperty(CommonsHttpMessageSender.DISABLE_KEEP_ALIVE,"true"); ??????? _client.setProperty(CommonsHttpMessageSender.DISABLE_EXPECT_CONTINUE,"true"); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |