一.创建两个Java工程,一个做为webservice的服务端,一个做为webservice的客户端。
二.在WSService工程中,编写service端,如下所示
package com.webservice.service; import javax.jws.WebService; import javax.xml.ws.Endpoint; /* * @WebService注解 * 标注该类为webservice的服务端 */ @WebService public class HelloService { /* * 一个service类,必须有一个能够被调用的方法 * 该方法不能是static和finally */ public String say(){ return "hello world!!"; } public static void main(String[] args) { /* * 参数1:服务地址 * 参数2:服务类 */ Endpoint.publish("http://127.0.0.1:1234/wsservice/hello", new HelloService()); } }
点击运行,效果如下。
此时webservice的服务端已经准备就绪,只等待客户端来调用了。为了让客户端能够使用服务端,还要做一些准备工作,首先我们要知道wsdl是什么东东,在浏览器中输入我们之前定义的服务地址,如下图所示:
这就是生成的esdl,其实就是使用说明书而已,使用情况我们在客户端代码中体现。
三.在cmd中输入命令:wsimport -s . http://127.0.0.1:1234/wsservice/hello?wsdl,生成客户端能够使用的代码。
由于D:\devEnv\eclipse\workspace\WSClient\src正好是客户端WSClient工程的代码目录,所以刷新WSClient工程,将会看到如下生成的java文件。
四.编写客户端代码
package com.webservice.client; import com.webservice.service.HelloService; import com.webservice.service.HelloServiceService; public class HelloClient { public static void main(String[] args) { /* * WSDL文件中: * <service name="HelloServiceService"> * 得出 */ HelloServiceService hss = new HelloServiceService(); /* * WSDL文件中: * <port name="HelloServicePort" binding="tns:HelloServicePortBinding"> * 得出 */ HelloService hs = hss.getHelloServicePort(); String s = hs.say(); System.out.println(s); } }
运行客户端代码,输出“hello world!!”,如下所示。