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条)

报告相同问题?

悬赏问题

  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘