Spring整合CXF之添加攔截器


今天主要來講解下如何在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 節點:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!-- 定義服務提供者  -->
< 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。今天就到這里。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM