linsongbin1
2009-12-30 16:37 阅读 380
已采纳

调用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 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");

    点赞 评论 复制链接分享
  • weixin_42519818 weixin_42519818 2009-12-30 17:21

    wsdl是必须要让客户读到的。感觉这个问题是网络问题,跟你怎么编写客户端没太大关系。问题的关键就是你说的“把数据传到服务器上”。

    点赞 评论 复制链接分享

相关推荐