1. WebService简介
Web Service——也叫XML Web Service WebService,是一种跨编程语言和跨操作系统平台的远程调用技术。
各个应用程序之间的交流就需要Web Service来作为相互交流的桥梁。
Web Service是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。
XML:(Extensible Markup Language)扩展型可标记语言。面向短期的临时数据处理、面向万维网络,是Soap的基础。
Soap:(Simple Object Access Protocol)简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文
档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口
,像HTTP(S)或者SMTP。
WSDL:(Web Services Description Language) WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数
情况下由软件自动生成和使用。
XML+XSD、SOAP和WSDL就是构成WebService平台的三大技术。
.WebService的工作调用原理
对客户端而言,我们给这个类WebService客户端API传递wsdl文件的url地址,这些API就会创建出底层的代理类,调用这些代理,就可以访问到webservice服务。代理类把客户端的方法调用变成soap格式的请求数据再通过HTTP协议发出去,并把接收到的soap数据变成返回值返回。对服务端而言,各类WebService框架的本质就是一个大大的Servlet,当远程调用客户端给它通过http协议发送过来soap格式的请求数据时,它分析这个数据,就知道要调用哪个java类的哪个方法,于是去查找或创建这个对象,并调用其方法,再把方法返回的结果包装成soap格式的数据,通过http响应消息回给客户端。
2. JDK实现WebService
(1)建一个接口Person,创建方法
@WebService //使用@WebService注解标注WebServiceI接口
public interface WebServiceI{
@WebMethod //使用WebMethod注解标注WebService接口中的方法
public String say(String what);
}
(2)编写WebServiceI接口的实现类WebServiceImpl,使用@WebService注解标注实现类
@WebService
public class PersonImpl implements WebServiceI{
@Override
public String say(String what){
System.out.println(“服务端:”+what);
return “正在说”+what;
}
}
(3)写发布类WebServicePublish,使用Endponit(终端)类发布WebService
String address = “http://172.20.10.5:6868/WS_Service/webService”;
//IP地址是本机动态地址
Endpoint.publish(address, new WebServiceImpl());
System.out.println(“服务端发布WebService成功…”);
(4)使用Eclipse自带的工具测试服务端
http://172.20.10.5:6868/WS_Service/webService?wsdl
注意IP地址
3.客户端
(1)创建终端工程,主要用来实现接收服务端的暴露。
(2)找到客户端源代码路径,
使用命令进行解析
wsimport -keep http://172.20.10.5:6868/WS_Service/webService?wsdl
建议:在src中右击操作输入命令,让产生的文件都生成在src中。
(3)创建Test.java测试类,在main方法中:
PersonImpService personImpService =new PersonImpService();
PersonImp personImp=personImpService.getPersonImpPort();
String str=personImp.eat(“啦啦啦”);
System.out.println(str);