您的位置:首页 > 其它

五、JAX-WS的详细介绍

2015-12-07 21:53 405 查看
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的传递
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: