`

JAX WS服务器端简介

 
阅读更多

本文简单介绍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)的过程.

分享到:
评论

相关推荐

    JAX-WS自学笔记

    JAX-WS自学笔记 本人自学JAX-WS笔记和简单例子,文档标题结构如下: JAX-WS使用教程 1、JAX-WS概述 2、创建Web Service 2.1 从java开始 2.1.1 运行wsgen ...2.5.2.1 服务器端 2.5.2.2 客户端

    WebService之JAX-WS自学笔记

    自己自学JAX-WS的心得,内含较为详细的讲解了简单的例子。文档目录如下: JAX-WS自学笔记 本人自学JAX-WS笔记和简单例子,文档标题结构如下: JAX-WS使用教程 ...2.5.2.1 服务器端 2.5.2.2 客户端

    jax-ws WebService使用教程

    讲解了从服务器端的开发,到Tomcat服务器部署,再到客服端调用,整个开发流程,并有实例代码

    JAX-WS WebService简明教程

    使用JDK自带的JAX-WS创建webservice服务器端和客户端。自制教程,欢迎反馈。

    GitJAXWSDB:带有数据库和客户端的 JAX-WS 服务器端 CRUD 应用程序

    Git-JAX-WS-DB 添加了带有 MySQL 数据库客户端应用程序的服务器端 JAX-WS。 显示的代码仅包含在 NetBeans 项目源文件夹中。 整个应用程序包括一个服务器端应用程序项目文件夹(“SvcDemo”)和一个单独的客户端项目...

    resteasy-cache-redis:用于服务器端JAX-RS响应缓存的Redis支持的缓存

    支持的服务器端JAX-RS请求缓存,用于 。 请参阅 ,以@Cache用于设置缓存控制标头和触发后端响应缓存的@Cache注释的说明。 安装 将缓存包括为Maven的依赖项: &lt; groupId&gt;...

    WebService合集

    无需任何数据库配置,每项WS技术包含有客户端和服务器端两个项目,直接放入Tomcat即可互相调用!之前看过若干个教学示例,都需要配置数据库!纳闷了~为啥要配置数据库呢?起到通信的作用就行了!为了个示例还要去...

    Java EE 5权威指南(原书第3版)

    Microsystem的新Java EE 5平台编写服务器端应用的权威指南。本书通过六大部分:网页层、 Web服务、企业Bean、持久化、服务和案例研究,深入讨论了企业JavaBeans 3.0、Java持久 化、JavaServer Faces技术、针对XML ...

    基于soa的E家园和个人通讯录

    包含两个项目,个人通讯录为服务器端,E家园为客服端,没有涉及框架技术,只是通过servlet,jsp,jdbc,xFire,JAX-WS等技术实现,代码均调试通过,希望对大家的java学习有帮助

    BOS技术整理-05

    JAX-RS整合spring服务器端开发 建立 maven web项目,演示RS整合spring服务发布 pom文件中导入坐标 web.xml配置webService 服务访问父路径 applicationContext.xml中配置具体服务地址 导入实体...

    Spring API

    2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态语言支持 2.6.2. 增强的测试支持 2.6.3. JMX 支持 2.6.4. 将Spring 应用程序上下文部署为JCA adapter 2.6.5. 计划任务 2.6.6. 对Java 5 (Tiger) 支持 2.7. 移植到...

    Spring中文帮助文档

    2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态语言支持 2.6.2. 增强的测试支持 2.6.3. JMX 支持 2.6.4. 将Spring 应用程序上下文部署为JCA adapter 2.6.5. 计划任务 2.6.6. 对Java 5 (Tiger) 支持 2.7. 移植到...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    5.6.2 开发服务器端程序 223 5.7 本章小结 225 第6章 利用JMS实现企业消息处理 226 6.1 面向消息的架构和JMS概述 227 6.1.1 面向消息的应用架构 227 6.1.2 JMS的基础知识和优势 228 6.1.3 JMS的两个重要版本 229 6.2...

    JAVA_API1.6文档(中文)

    javax.sql 为通过 JavaTM 编程语言进行服务器端数据源访问和处理提供 API。 javax.sql.rowset JDBC RowSet 实现的标准接口和基类。 javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据...

    java使用webserver发布服务端和客户端

    这个是本人根据网上的方法用java的webserver做的发布接口和客户端接受,例子是一个加法,服务器端发布接口,客户端使用接口,希望对大家有帮助

    JDK_1_6 API

    javax.sql 为通过 JavaTM 编程语言进行服务器端数据源访问和处理提供 API。 javax.sql.rowset JDBC RowSet 实现的标准接口和基类。 javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据...

    java api最新7.0

    javax.sql 为通过 JavaTM 编程语言进行服务器端数据源访问和处理提供 API。 javax.sql.rowset JDBC RowSet 实现的标准接口和基类。 javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据类型...

Global site tag (gtag.js) - Google Analytics