码迷,mamicode.com
首页 > 其他好文 > 详细

五、JAX-WS的详细介绍

时间:2015-12-07 22:29:58      阅读:275      评论:0      收藏:0      [点我收藏+]

标签:

1、常用的封装样式
      1.1、基于Wrapper和Document

技术分享

      1.2、基于Bare

技术分享

      1.3、基于RPC

技术分享

技术分享

    2、JAX-ws常用操作
      2.1、异常处理

创建异常处理类

异常对象最好是Exception的对象而不是RuntimeException

技术分享

  在wsdl中添加消息和element

技术分享

  为PortType和Binding设置异常

PortType中说明那些方法会抛出异常

技术分享

Binding说明抛出异常的编码方式

技术分享

技术分享

      2.2、简单权限控制

1、创建header元素

技术分享

  2、创建message并且绑定消息

技术分享

技术分享

  3、处理消息头

有如下几种方式:

1、通过SAAJ(直接创建SOAPBody和SOAPHeader对象,通过Dispatcher传递消息):客户端:可以处理,服务器端目前还没有方法获取SOAPMessage

2、使用SOAPHandler处理(SOAPMessageContext)

3、基于JAXWS-RI的方法

   Headers.create(element):可以把一个dom的element转换为Header元素

客户端

技术分享

服务器端的编写

技术分享

技术分享

  4、服务器端处理Header

服务器端的编写

3_1、解决包冲突问题

当时有JAX RI时会抛出

javax.xml.ws.soap.SOAPFaultException: javax.xml.ws.WebFault.messageName()Ljava/lang/String;

这是因为在JAXRi中使用了WebFault对象,但是JDK也提供这个方法,在调用时会去调用JDK的WebFault此时就找不到messageName方法

解决方案:将jax-ri.jar这个 包拷贝到jdk的jre中的lib中的endored文件夹中

技术分享

    3、在Tomcat中发布服务
      3.1、将wsdl文件夹拷贝到WEB-INF中

技术分享

      3.1、导入Jax-RI包

          JAXWs-RI reference Implements

      3.2、在WEB-INF下创建sun-jaxws.xml

<?xml version="1.0" encoding="UTF-8" ?>

<endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" version ="2.0">

< endpoint name ="MyService"

implementation= "org.konghao.service.MyServiceImpl" url-pattern= "/tc"/>

</endpo

ints>

技术分享

      3.3、配置web.xml

<listener >

< listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener </listener-class>

</ listener>

< servlet>

< servlet-name>MyService </servlet-name>

< servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet </servlet-class>

</ servlet>

< servlet-mapping>

< servlet-name>MyService </servlet-name>

< url-pattern>/tc</url-pattern>

</ servlet-mapping>

技术分享

    4、二进制的处理
      4.1、基于MTOM的第一种处理方式

技术分享

技术分享

技术分享

技术分享

特别注意:只能在服务器中使用MTOM,在默认的Jetty服务器里面无法进行MTOM的传递

五、JAX-WS的详细介绍

标签:

原文地址:http://www.cnblogs.com/lvjun2015/p/5027603.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!