04_天气查询_JAX-WS方式_服务端

时间:2021-11-12 20:58:39

【简述】

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版本。

【服务端工程截图】

04_天气查询_JAX-WS方式_服务端

【1.WeatherInterface.java】

编写SEI (Service Endopint Interface),SEI在WebService中称为 PortType,在Java中称为接口

04_天气查询_JAX-WS方式_服务端

【2.WetherInterfaceImpl.java】SEI实现类

04_天气查询_JAX-WS方式_服务端

【3.WeatherServer.java】

发布WebService服务

04_天气查询_JAX-WS方式_服务端

【运行服务的结果与分析】

1.运行WeatherServer.java的main方法之后,没有提示信息,只有变红的那个提示运行的标志。

04_天气查询_JAX-WS方式_服务端

2.在浏览器中输入对应的WebService的发布地址http://127.0.0.1:12345/weather

如下所示

04_天气查询_JAX-WS方式_服务端

3.验证WebService服务是否发布成功

在WebService的地址后面加“?wsdl”,查询WebService的使用说明书是否完整,如果wsdl内容完整,表示webService发布成功。

记下来进入"http://127.0.0.1:12345/weather?wsdl",如下,wsdl是XML格式的文档,我们要从下往上读:

首先,我们要找到<service>,看到了我们的接口首先Service服务名WeatherInterfaceImplService,

04_天气查询_JAX-WS方式_服务端

接着根据服务名找到对应的<binding>,可以看到其类型是WeatherInterfaceImpl

04_天气查询_JAX-WS方式_服务端

最终通过binding找到portType

04_天气查询_JAX-WS方式_服务端

portType有方法,调用WebService就是调用portType的方法。

最终找到portType,其中含有方法,说明WSDL文档基本完整。(当然也必须存在调用服务类<service>及方法)

【WSDL小结】

<service>     服务视图,WebService的服务节点,它包括了服务端点

<binding>    为每个服务端点定义消息格式和协议细节

<portType>  服务端点,描述WebService可以被执行的操作方法,以及相关消息,通过binding指向portType

<message>  定义一个操作(方法)的数据参数(可以有多个参数)

<types>       定义WebService使用的全部数据类型