加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

JAX WS服务器端简介

发布时间:2020-12-17 02:33:03 所属栏目:安全 来源:网络整理
导读:本文简单介绍JAX WS在服务器端是如何实现和运行的。 下面这幅图描述了一个SOAP binding的JAX WS从接受到客户端的请求到返回请求给客户端的过程。 1,客户端开发者通过URL得到WSDL文件。(通过HTTP访问可以得到,http://endpoint-address?wsdl) 2,客户端根据WSDL

本文简单介绍JAX WS在服务器端是如何实现和运行的。
下面这幅图描述了一个SOAP binding的JAX WS从接受到客户端的请求到返回请求给客户端的过程。


1,客户端开发者通过URL得到WSDL文件。(通过HTTP访问可以得到,http://<endpoint-address>?wsdl)
2,客户端根据WSDL的描述,通过HTTP POST发送SOAP消息给服务器端。
3,服务器端Listener接受到SOAP请求消息,对JAVA来说,通常是一个servlet或者EJB。Listener把消息转发给 Dispatcher,有时候listener和Dispatcher也可能是同一个类。Dispatcher会把请求消息交给WebService的运行终端。
4,这时候,服务器端会将HTTP request转成服务器端的消息类型,形成javax.xml.ws.handler.MessageContext,并处理SOAP消息的头信息,如mustUnderstand。
5,如果在服务器端配置了handler,会调用handler的handleMessage方法,通常用handler来保存消息,解密或者保证消息到达的顺序。handler通过在@HandlerChain标注配置,
handlers.xml文件内容为:
<handler-chains xmlns="http://java.sun.com/xml/ns/javaee">
?<handler-chain>
? <handler>
?? <handler-name>WSSOAPHandler</handler-name>
?? <handler-class>com.cxf.test.WSSOAPHandler</handler-class>
? </handler>
?</handler-chain>
?<handler-chain>
??????? <handler>
??????????? <handler-name>WSHandler</handler-name>
??????????? <handler-class>com.cxf.test.WSHandler</handler-class>
??????? </handler>
??? </handler-chain>
</handler-chains>
6,SOAP消息被反序列化为JAVA对象,传到真正的实现业务的类。
7,调用真正的业务方法,执行后利用JAXB注解序列化成SOAP返回消息。
8,如果配置了handler,会调用handler的handleMessage方法。如果业务方法有异常抛出,把异常转为SOAP fault 消息。
9,Listener通过HTTP把response返回给客户端。

总体来讲:整个过程是一个Requset XML(SOAP)-->JAXB-->JAVA Object-->JAXB-->Response XML(SOAP)的过程.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读