访问.Net Web服务的Java Web服务客户端

访问.Net Web服务的Java Web服务客户端,java,soap,webservice-client,Java,Soap,Webservice Client,我正试图通过JavaWebService客户端访问在线.NETWebService 但不幸的是,我收到一个错误“连接超时:连接” 下面是我的代码: import org.apache.axis.client.Call; import org.apache.axis.client.Service; import javax.xml.namespace.QName; public class WebServiceMain { public static void main(String[

我正试图通过JavaWebService客户端访问在线.NETWebService

但不幸的是,我收到一个错误“连接超时:连接”

下面是我的代码:

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.namespace.QName;

public class WebServiceMain {

    public static void main(String[] args) {

         try {
                 String endpoint = "http://wsf.cdyne.com/SpellChecker/check.asmx";
                 Service service = new Service();
                 Call call = (Call)service.createCall();
                 call.setProperty(Call.SOAPACTION_USE_PROPERTY, new Boolean(true)); 
                     call.setProperty(Call.SOAPACTION_URI_PROPERTY, "http://ws.cdyne.com/CheckTextBodyV2");
                     call.setTargetEndpointAddress( new java.net.URL(endpoint) );
                     call.setPortName(new QName("http://ws.cdyne.com/", "check"));
                 call.setOperationName(new QName("http://ws.cdyne.com/", "CheckTextBodyV2"));

                 System.out.println(call.invoke(new Object[] {"helo is my name"}));
               } catch (Exception e) {
                 System.err.println(e.toString());
               }
    }
}

连接超时是因为网络问题。请尝试在浏览器中访问URL。同时尝试在URL末尾附加?wsdl,您应该会看到wsdl。如果这不起作用,请对网络设置进行疑难解答

连接超时:连接

这意味着您的客户机应用程序甚至无法与Web服务通信。这不是一个方案问题

检查并查看是否可以通过web浏览器访问端点。如果没有,则该服务不可用。所以它不起作用


如果您的浏览器可以访问它,并且您通过代理连接到Internet,那么您需要为Java客户端指定代理详细信息。为此,您可以在启动客户端应用程序时使用-Dhttp.proxyHost=10.2.240.11和-Dhttp.proxyPort=8080(替换为您的值)系统属性。

下载并安装soapui软件。 然后加载wsdl文件并创建项目

然后通过soapui测试您的web服务。
您可以编辑soap ui的连接超时值。更改它用于大型虚拟机和测试。仍然是您的超时ping到服务的ip地址

您可以连接到该服务(例如使用浏览器)?@Mat:是的,我可以通过浏览器连接并获得XML结果。但如果我是通过这段代码访问的,则不是。是的,我可以通过浏览器连接并获得XML结果。@Yohan:我已经为代理主机和端口设置了属性。但还是一样<代码>System.setProperty(“http.proxyHost”、“xxxxxxxxxxxx”);System.setProperty(“http.proxyPort”、“80”)我的代码是否正在您的计算机上执行?请检查并让我知道。@Siva如果您使用的是代理服务器,那么我怀疑这一定是因为这个原因。您的代理服务器是否需要身份验证?我注意到您正在使用Axis作为Web服务客户端。此链接还说明了使Axis通过代理连接所需的系统属性:@Siva是的,它在我的机器中运行。但当它反序列化XML内容时失败,这是另一个问题。但是是的,Web服务调用是通过的。它必须是您的代理设置。我不是Axis专家,但我认为您应该检查与动态客户端关联的绑定样式。如果可行,请尝试使用Axis toolkit中的WSDL2Java工具为您构建客户端,并尝试通过该工具调用WS。请提供下载soapui软件的url。所以我也可以试试。