Sam_Deep_Thinking 2009-12-30 16:37
浏览 464
已采纳

调用webservice,出现了java.net.NoRouteToHostException异常

http://ip地址:8000/xfire_service_zongzhan/services/intendance?wsdl

已经把webservice放到了外网上的服务器了。上面这个路径我是可以直接访问到的,浏览器可以看到xml文件的。

然后我根据这个url生成了客户端类,用来调用webservice的。如下:

D:\generateAxisClient>Java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java
http://211.147.247.85:8000/xfire_service_zongzhan/services/intendance?wsdl

我是在cmd上执行的,使用了[color=#FF0000]axis[/color]的WSDL2Java来生成webservice的客户端的。

现在我用生成的客户端去调用webservice,但是报错了。

如下:

java.net.NoRouteToHostException: No route to host: connect

这样的话,就无法把数据从本地传到服务器上了。

出现了这种情况后,我首先是ping一下放有webservice的服务器,是ping不通的,原因是
公司是通过代理的方式上网的,所以我直接ping不通了。
而之前的uri可以访问是因为浏览器使用了代理,所以可以访问到服务器。

想要问的问题是:
生成webservice的客户端有几种方式,我目前这种使用命令形式的生成的客户端中有
XfireServiceHttpBindingStub这样一个类。似乎是静态的方式调用webservice。
是不是应该换成动态代理方式或者其他方式呢?

要是客户那边是使用代理的方式上网的,应该如何写客户端,才可以把数据传到服务器上呢?

请指导一下。

  • 写回答

2条回答

  • wanghaolovezlq 2010-01-12 12:30
    关注

    那你生成的客户端代码里也是要设置代理才能访问webservice的

    axis WebServices 调用 本地使用代理上网,设置代理
            System.getProperties().put("proxySet", "true");

    System.getProperties().put("proxyHost", "192.168.0.26");

    System.getProperties().put("proxyPort", "808");

    System.getProperties().put("socksProxySet", "true");

    System.getProperties().put("socksProxyHost", "192.168.0.26");

    System.getProperties().put("socksProxyPort", "1080");

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))
  • ¥20 5037端口被adb自己占了
  • ¥15 python:excel数据写入多个对应word文档
  • ¥60 全一数分解素因子和素数循环节位数
  • ¥15 ffmpeg如何安装到虚拟环境
  • ¥188 寻找能做王者评分提取的
  • ¥15 matlab用simulink求解一个二阶微分方程,要求截图
  • ¥30 乘子法解约束最优化问题的matlab代码文件,最好有matlab代码文件
  • ¥15 写论文,需要数据支撑
  • ¥15 identifier of an instance of 类 was altered from xx to xx错误