使用JAX-WS测试Web服务客户端

时间:2013-01-17 17:46:06

标签: api jax-ws

有一个名为" HelloWorld"在下面的代码中显示的链接上。如何使用下面的代码调用此api。 api没有参数。

该服务已存在于所显示的网址上。我需要在下面的代码中添加什么:

import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;

public class apiHelloWorld {

    public static void main(String[] args) throws Exception {
        URL url = new URL("http://project.url.com/service.asmx?wsdl");

    }
}

1 个答案:

答案 0 :(得分:0)

您的网址建议您指向文档,而不是实际服务。很可能您的服务位于相同的网址下,但没有?wsdl足够的数据。

据说使用普通URL类调用SOAP Web服务需要很少的额外步骤。但这绝对是可能的,毕竟这是一个普通的HTTP协议。

您需要XML格式的SOAP请求,包括SOAP Envelope。这可能是最复杂的部分(例如:Sending a SOAP request to a Web Service via URLConnection):

String soapXml =   //...;
java.net.URLConnection conn = new URL("http://project.url.com/service.asmx").openConnection();
conn.setRequestProperty("SOAPAction", "");
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(soapXml);
wr.flush();

BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));

通过阅读rd,您可以获取回复。