java1234开源博客系统
博客信息

Spring整合CXF之添加拦截器

0
发布时间:『 2016-03-17 12:11』  博客类别:webservice  阅读(7038) 评论(14)

今天主要来讲解下如何在Spring整合CXF环境下,添加拦截器;


这里我们给下官方的参考文档:http://cxf.apache.org/docs/jax-ws-configuration.html


结合官方文档,我们在前面的实例基础上,加代码:


bbb.jpg


首先我们把前面的自定义拦截器 MyInterceptor 贴进来。


然后我们打开spring配置文件,applicationContext.xml


根据官方文档:我们通过jaxws:inInterceptors jaxws:outInterceptors 这两个标签来添加in拦截器和out拦截器


我们修改下jaxws:endpoint 节点:

<!-- 定义服务提供者  -->
<jaxws:endpoint
	implementor="#helloWorld"
	address="/HelloWorld">
	<!-- 添加in拦截器 -->
	<jaxws:inInterceptors>
		 <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
		 <bean class="com.java1234.interceptor.MyInterceptor"/>
	</jaxws:inInterceptors>
	<!-- 添加out拦截器 -->
	<jaxws:outInterceptors>
		 <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
	</jaxws:outInterceptors>
</jaxws:endpoint>


这里 我们添加了两个in拦截器,一个是cxf自带的LogginInInterceptor拦截器,还有一个是我们自己定义的MyInterceptor拦截器,

主要用作权限判断;


out拦截器,我们还是用了一个cxf自带的LogginInInterceptor拦截器;


这样我们就完事了;我们可以看到。用spring我们可以很轻松的完整拦截器的配置;


接下来测试下话,我们还是用前面开发的WS_Client来测试,因为请求的websercie地址变了。

所以我们用wsdl2java工具重新生成下新的客户端代码;(具体操作大家看前面的帖子,这里就不再重复叙述)


我们测试的话,大家可以先把客户端的拦截器注释掉,我们会发现会报错,说找不到header消息;


假如密码弄错,会报用户名或者密码不对;


我们用正确的密码,webservice接口会返回正确的结果。


OK。今天就到这里。


关键字:   webservice     cxf     自定义拦截器  
关注Java1234微信公众号
博主信息
Java1234_小锋
(知识改变命运,技术改变世界)
Powered by Java1234 V3.0 Copyright © 2012-2016 Java知识分享网 版权所有