您的位置:首页 > 编程语言 > Java开发

Spring整合jaxws基于handles验证

2014-03-17 10:56 681 查看

Spring整合jaxws基于handles验证

Spring整合jaxws基于handles验证

总结:关于Spring整合jaxws基于handles验证,在网上看了较多资料,也花了很长时间才得以成功。有很多人说用【HandlerChain(file = "handler-chain.xml") 标记拦截请求,当我试了多次,都没实现拦截】【另一个是通过spring代理进行拦截,这个方法成功了,可参考:http://stackoverflow.com/questions/15016541/how-to-config-jax-ws-handler-in-spring】,这里主要将如何创建handles步骤,及关键点:

参考API:https://jax-ws-commons.java.net/spring/handler.html

步骤

1、下载springjaxws.jar整合包

2、在web.xml中配置:

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath*:applicationContext.xml</param-value>

</context-param>

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

<!-- 部署webservice,基于jaxws监听器 -->

<servlet>

<servlet-name>jaxws-servlet</servlet-name>

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

< /servlet>

3、创建public class TKHandler implements SOAPHandler<SOAPMessageContext>{} 继承SOAPHandler的所有方法【这个类在代码网上很多,这里就不贴出来了】

4、创建 基于jaxws开发的webservice SEI实现类代码 声明某个类为@WebService,即将它声明为SEI实现类[关于创建ws类,网上资料多,这里就不详细说了]:

@WebService

public class AngleJaxws {

@Method

public String hi(String s){

return s;

}

}

5、最关键步骤:在spring中配置拦截,指定需要拦截的ws类;

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

< beans

xmlns="http://www.springframework.org/schema/beans"

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:tx="http://www.springframework.org/schema/tx"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:core="http://jax-ws.dev.java.net/spring/core"

xmlns:servlet="http://jax-ws.dev.java.net/spring/servlet"

xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd http://jax-ws.dev.java.net/spring/core http://jax-ws.dev.java.net/spring/core.xsd http://jax-ws.dev.java.net/spring/servlet http://jax-ws.dev.java.net/spring/servlet.xsd">
<!-- webservice类-->

<bean id="baseJaxws" class="webservice.jaxws.AngleJaxws">

</bean>

<bean id="myHandler" class="webservice.jaxws.handler.TKHandler" />

<servlet:binding url="/AngleService">

<servlet:service >

<core:service bean="#baseJaxws" >

<core:handlers >

<ref bean="myHandler"/> <!--指定handlers拦截-->

</core:handlers>

</core:service>

</servlet:service>

</servlet:binding>

</beans>

6、优点:不需要配置文件,配置还是比较简单。

7、缺点:需要写一长串标签,比如你要配置一个ws需要写好几行标签,不知道能不能简化下,如果能简化那就方便了:

<servlet:binding url="/AngleService">

<servlet:service >

<core:service bean="#baseJaxws" >

<core:handlers >

<ref bean="myHandler"/> <!--指定handlers拦截-->

</core:handlers>

</core:service>

</servlet:service>

</servlet:binding>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: