1.什么是web服务:
web服务是一种可以用来解决跨网络应用集成问题的开发模式,这种模式为实现“软件即服务”提供了技术保障。
2.web服务的三个核心
2.1 SOAP
SOAP(Simple Object Access Protocol,简单对象访问协议)是一个基于xml的协议,用于在分步的应用程序都可以识别。另外,SOAP本身没有定义任何程序语言,这使得SOAP能够以消息的形式传递到各种远程系统中。
SOAP所使用的传输协议,可以是HTTP,SMTP,POP3,JMS。
SOAP包括了4部分:
01.“SOAP封装(Envelope)”:
定义一个描述信息描述的内容是什么,是谁发送的,谁应当处理他,以及如何处理他们的框架。
02.“SOAP编码规则”:
用于表示应用程序需要使用的数据类型的实例。
03.“SOAP RPC":
表示远程过程中调用和应答的协定。
04.“SOPA绑定”:
使用底层协议交换信息。
2.2 WSDL
WSDL(Web Service Description Language,web服务描述语言)是一个XML文档,他以一种和具体语言无关的抽象方式定义了给定web服务收发者的有关操作和消息。
2.3 UDDI
UDDI(Universal Description Discovery and Integration,统一描述发现和集成协议)是一个规范,定义了与web服务相关的信息的发布,发现和管理。
3.JAX-WS
JSX—WS(Java API for XML Web Service)。他是用来简化使用java构造web服务和web服务客户端的工作的技术。
3.1使用JAX-WS发布服务
案例:HelloWord:
01.定义服务类以及方法
package cn.service2; import javax.jws.WebService; import javax.xml.ws.Endpoint; import cn.clien.test.HellowordClicenTest; /** *@javax.jws.WebService注解,标识一个java类或一个接口作为一个服务,一旦被标注@WebService,他就不是一个普通的 *接口,他被称作服务端点接口(Service Endpoint Interface) */ @WebService public class HelloWord { /** * 打招呼的方法 * @param name * @return */ public String say(String name){ System.out.println("欢迎"+name); return "你好:"+name; } public static void main(String[] args) { String address="http://localhost:50000/HelloWord"; //发布服务 Endpoint.publish(address, new HelloWord()); System.out.println("启动服务成功....."); } }
02.启动测试
03.在浏览器中测试
到了这一步证明发布成功了可以进行客户端的测试了。
3.1使用JAX-WS调用服务
01.打开cmd命令:
------》cd\到c盘根目录------》wsimport -s . http://localhost:50000/HelloWord?wsdl
02.会在c盘根目录下生成文件夹里面有有java类和编译好的字节码文件
03.把java类复制到我们的工程中,创建测试类
package cn.clien.test; import javax.xml.ws.Endpoint; import cn.service1.HelloWord; import cn.service1.HelloWordService; public class HellowordClicenTest { public static void main(String[] args) { HelloWordService hws=new HelloWordService(); HelloWord hw= hws.getHelloWordPort(); System.out.println(hw.say("呵呵")); } }
04.运行效果图:
服务端:
客户端:
3.3使用web Service Explorer来调用服务
在MyEclipse中找到如图所示的图标
打开会出现如图所示的界面,它默认选择的是UDDI,在这里我们选择WSDL
当点击go
服务端:
客户端: