日期:2014-05-18  浏览次数:20664 次

java调用C#写的webservice问题
最近在调用第三方提供的webservice地址时出现连接超时的错误。
对方提供的webservice地址IE能够打开,用IE窗体调用的方式可以调用成功。但是用代码调用就一直报连接超时问题。请各位大神帮忙看一下!
错误如下:
 nested exception is: 
java.net.ConnectException: Connection timed out: connect
我的调用代码如下:
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName(new QName(namespace, "lwmIfProdDplanSend"));
call.addParameter(new QName(namespace, paramName),
org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);
call.setUseSOAPAction(true);
call.setSOAPActionURI(namespace + "lwmIfProdDplanSend");
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
result = (String) call.invoke(new Object[]{outXml.toString()}); 

------解决方案--------------------
LZ用的是axis2吧, 先确定是否服务问题,用IE的url直接调用,看是否能够正常返回?

如果IE也是同样的问题,可以试试修改axis2.xml文件,修改超时属性。
------解决方案--------------------
你如果代理上网的加上


       System.getProperties().setProperty("proxySet", "true");
System.getProperties().setProperty("http.proxyHost", "xxxx");
System.getProperties().setProperty("http.proxyPort", "xxxxx");
------解决方案--------------------
引用:
Quote: 引用:

先用浏览器直接访问url试试。也有可能是网络问题。是否需要代理都检查下

谢谢回复,是否需要代理是我这边(客户端)要检查还是第三方(服务端)要检查?从哪里检查呢?


你本身的网络啊,你访问那个url,浏览器设置代理了吗?如果设置了,那你的代码里也要设置代理