- (二)发布第一个WebService服务与DSWL文档解析 讲解了如何发布一个web服务,本章主要讲述如何调用一个web服务。
- 这里有三种方式:
- 使用代理模式调用,需要将服务端的接口类拷贝到客户端中。(不常用,因为不大可能拿到服务端的接口类。)
- 通过客户端桩的方式。
3. 发送原始的soap消息。
一、使用代理模式
- 需要将服务端的接口类拷贝到客户端中。
- 本例所调用的服务为(二)发布第一个WebService服务与DSWL文档解析 这个章节所发布的web服务,也就是说需要把该服务的接口类拷贝到客户端中。
package test;import java.net.MalformedURLException;import java.net.URL;import javax.xml.namespace.QName;import javax.xml.ws.Service;import service.WebService_1;/** * 使用代理模式 1.需要将服务端的接口类拷贝到客户端中。 * ?* @author Administrator * */public class Test { ???public static void main(String[] args) { ???????try { ???????????// wsdlDocumentLocation是所调用服务的wsdl地址 ???????????URL wsdlDocumentLocation = new URL("http://localhost:3031/first?wsdl"); ???????????// QName构造函数的第一个参数是所调用服务的wsdl的命名空间。第二个参数是所调用的服务名 ???????????QName serviceName = new QName("http://service/", "WebService_1_implService"); ???????????Service service = Service.create(wsdlDocumentLocation, serviceName); ???????????????????????//通过getport获取到的是一个代理对象,而不是接口对象 ???????????WebService_1 webService_1 = service.getPort(WebService_1.class); ???????????int result = webService_1.add(25, 10); ???????????System.out.println("result===" + result); ???????} catch (Exception e) { ???????????e.printStackTrace(); ???????} ???}}
结果:
二、客户端桩
通过wsdl地址或者wsdl文档,生成客户端的调用类,被称为客户端桩的方式。
- 步骤:
- 使用eclipse/myeclipse工具来生成客户端(内部调用jdk命令)(本例中使用)。
- 使用jdk命令来生成客户端。
该图为jdk命令,其中 -d表示存放客户端代码的目录,http://localhost:4040/first?wsdl为要生成客户端的wsdl文档地址。
该命令生效后,会生成目录:
其中,客户端代码就在这个目录下。
- 案例:(使用工具生成客户端)
- 本例所调用的服务为(二)发布第一个WebService服务与DSWL文档解析 这个章节所发布的web服务
1. 生成客户端。
package test;import java.rmi.RemoteException;import service.WebService_1;import service.WebService_1Proxy;public class Test { ???public static void main(String[] args) throws RemoteException { ???????WebService_1 weService_1 = new WebService_1Proxy().getWebService_1(); ???????int res = weService_1.add(20, 50); ???????System.out.println("res=" + res); ???}}
结果:
三、发送原始的soap消息
(三)调用web服务
原文地址:http://www.cnblogs.com/shyroke/p/7649959.html