1、简单阐述原理
WebService是对于Socket程序的封装。简单的实现客户端服务器的访问。也就是将下图的Socket程序封装了起来更加简单的实现。请看原理图:
2、准备条件:
A、准备JDK 1.6.20以上的版本(1.6.20之后被Oracle公司收购之后加入ws处理),并且加入系统高级变量Path中
B、切勿忘记@WebService的类注解
3、发布一个服务
A、在Eclipse中建立一个Java Project 目录结构如下图:
B、HelloWorld代码如下:(运行main方法启动服务)
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
@WebService
public class HelloWorld {
//服务器端方法
public void SayHello(String name){
System.out.println("hello"+name);
}
public static void main(String[] args) {
//Endpoint方法发布一个服务
//@Params address,new 服务类
Endpoint.publish("http://192.168.1.103:8888/hello", new HelloWorld());
System.out.println("发布了一个服务.....");
}
}
4、访问地址栏确认服务发布成功:
http://192.168.1.103:8888/hello?wsdl 注意后面的?wsdl不可少。成功之后的页面展示如下图:
5、运用wsimport命令(位于JAVAHOME/bin/)远程生成服务器端服务代码
开始-cmd进入doc环境:
d: //进入D盘
mkdir WsTest /建立WsTest目录
cd WsTest //进入WsTest目录
wsimport -s . http://192.168.1.103:8888/hello?wsdl //生成调用服务器端的代码
运行完成之后在该目录下会有和服务器端一样的包和程序
6、新建客户端类调用远程服务器端代码
A、在Eclipse新建一个Java Project 注意jre版本
B、之后将第5部生成的文件夹直接拷贝到src目录下。
C、新建一个Java文件调用生成的类文件。目录结构如下 :
D、GetWebService代码如下:
import cn.zhanglei.webservice.HelloWorld;
import cn.zhanglei.webservice.HelloWorldService;
public class GetWebService {
public static void main(String[] args) {
//得到调用服务器端类对象
HelloWorld hw =
new HelloWorldService().getHelloWorldPort();
hw.sayHello("张磊");
}
}