在IE的地址中,输入WSDL地址能访问
但用JAVA代码访问就会出异常,求问题原因,异常信息如下。AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode: 
 faultString: java.net.ConnectException: Connection timed out: connect
 faultActor: 
 faultNode: 
 faultDetail: 
{http://xml.apache.org/axis/}stackTrace:java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:367)
at java.net.Socket.connect(Socket.java:524)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at org.apache.axis.components.net.DefaultSocketFactory.create(DefaultSocketFactory.java:153)
at org.apache.axis.components.net.DefaultSocketFactory.create(DefaultSocketFactory.java:120)
at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at com.faw_qm.webgis.java.TDSToBAMServiceSoap_BindingStub.getSalEarning(TDSToBAMServiceSoap_BindingStub.java:762)
at test.Start.main(Start.java:21) {http://xml.apache.org/axis/}hostname:user-lujava.net.ConnectException: Connection timed out: connect
at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:154)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at com.faw_qm.webgis.java.TDSToBAMServiceSoap_BindingStub.getSalEarning(TDSToBAMServiceSoap_BindingStub.java:762)
at test.Start.main(Start.java:21)
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:367)
at java.net.Socket.connect(Socket.java:524)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at org.apache.axis.components.net.DefaultSocketFactory.create(DefaultSocketFactory.java:153)
at org.apache.axis.components.net.DefaultSocketFactory.create(DefaultSocketFactory.java:120)
at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
... 11 more

解决方案 »

  1.   

    无法连接webservice服务端,看下服务端是否启动了
      

  2.   

    我在本机IE的地址上输入这个WSDL地址,没问题能正常访问。
    并且通过Altova XMLSpy这个工具访问,也问题,而且还能得到正确的数据。以上可以证明webservice服务端是在运行中的。。只有用axis包自动生成的JAVA代码访问,才回出现这个错误。神呢,来个高手吧。。
      

  3.   

    用soapUI模拟发送soap看看会不会有问题...
    websphere 我个人一般都是自己写客户端发送xml报文的soap消息,自动生成的不保险,错误不好调试
      

  4.   

    看下服务端防火墙的设置,连接不上报的是Connection timed out,估计和服务端的防火墙有关系
      

  5.   

    我之前做的时候也遇到过使用axis生成后调用失败 当时忘记是什么异常了 后来找到的原因是 服务端是axis1.2开发 我生成时候用了axis2.0导致调用失败 后来使用axis1.2生成客户端后 问题解决 希望能帮到你 还有楼上说的端口是不是被拦截了 检查检查防火墙
      

  6.   

    感谢大家的答复,问题找到了,是因为机器是通过代理访问的外网。所以直接连接不行。
    只要在生成的java代码中,加入通过代理访问的方法就行了。通过代理访问的方法:在程序入口最开头写:System.setProperty("http.proxySet", "true");
    System.setProperty("http.proxyHost", host);
    System.setProperty("http.proxyPort", port);