一.创建两个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!!”,如下所示。