【简述】
WebService的Java实现共有三种方式:JAX-WS(JAX-RPC)、JAXM&SAAJ、JAX-RS。
JAX-WS:
JAX-WS 的全称为 Java API for XML-Based Webservices ,早期的基于SOAP 的JAVA 的Web 服务规范JAX-RPC(Java API For XML-Remote Procedure Call)目前已经被JAX-WS 规范取代。从java5开始支持JAX-WS2.0版本,Jdk1.6.0_13以后的版本支持2.1版本,jdk1.7支持2.2版本。
【服务端工程截图】
【1.WeatherInterface.java】
编写SEI (Service Endopint Interface),SEI在WebService中称为 PortType,在Java中称为接口。
【2.WetherInterfaceImpl.java】SEI实现类
【3.WeatherServer.java】
发布WebService服务
【运行服务的结果与分析】
1.运行WeatherServer.java的main方法之后,没有提示信息,只有变红的那个提示运行的标志。
2.在浏览器中输入对应的WebService的发布地址http://127.0.0.1:12345/weather
如下所示
3.验证WebService服务是否发布成功
在WebService的地址后面加“?wsdl”,查询WebService的使用说明书是否完整,如果wsdl内容完整,表示webService发布成功。
记下来进入"http://127.0.0.1:12345/weather?wsdl",如下,wsdl是XML格式的文档,我们要从下往上读:
首先,我们要找到<service>,看到了我们的接口首先Service服务名WeatherInterfaceImplService,
接着根据服务名找到对应的<binding>,可以看到其类型是WeatherInterfaceImpl
最终通过binding找到portType
portType有方法,调用WebService就是调用portType的方法。
最终找到portType,其中含有方法,说明WSDL文档基本完整。(当然也必须存在调用服务类<service>及方法)
【WSDL小结】
<service> 服务视图,WebService的服务节点,它包括了服务端点
<binding> 为每个服务端点定义消息格式和协议细节
<portType> 服务端点,描述WebService可以被执行的操作方法,以及相关消息,通过binding指向portType
<message> 定义一个操作(方法)的数据参数(可以有多个参数)
<types> 定义WebService使用的全部数据类型