黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 用CXF為Web Service添加攔截器

用CXF為Web Service添加攔截器

更新時(shí)間:2020-09-18 17:20:17 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1285次

Web Service的攔截器分為Service端和Client端,攔截器是在發(fā)送soap消息包的某一個(gè)時(shí)機(jī)攔截soap消息包,對soap消息包的數(shù)據(jù)進(jìn)行分析或處理。用CXF為Web Service添加攔截器的方式有兩種分別為為CXF自帶的攔截器和自定義的攔截器。

1.Service端:

通過將org.apache.cxf.jaxws.EndpointImpl類的方法即可實(shí)現(xiàn)

發(fā)布Web Service 方法可以通過Endpoint.publish()方法,此方法返為EndpointImpl,所以為Service端添加攔截器很簡單。

部分代碼:

UserService us = new UserServiceImpl();

String address = "http://192.168.10.254:9999/crazyit";

EndpointImpl ep = (EndpointImpl)Endpoint.publish(address , us);

//下面方法就可以添加攔截器(CXF提供的攔截器)

//cxf-2.2.10.jar org.apache.cxf.interceptor.* (CXF提供的攔截器)

ep.getOutInterceptors().add(new LoggingOutInterceptor());

ep.getInInterceptors().add(new LoggingInInterceptor());

ep.getInInterceptors().add(new AuthIntercetpr()); //此攔截器是自定義的攔截器。

2.Client端 客戶端可以通過對org.apache.cxf.frontend.ClientProxy中的getClient()方法獲取org.apache.cxf.endpoint.Client對象,該對象可以為客戶端添攔截器。

部分代碼

//為客戶端添加攔截器

org.apache.cxf.endpoint.Client client = ClientProxy.getClient(us);

client.getInInterceptors().add(new LoggingInInterceptor());

client.getOutInterceptors().add(new LoggingOutInterceptor());

//自定義攔截器

client.getOutInterceptors().add(new AddHeaderInterceptor("crazyit" , "crazyit.org2"));

3.自定義的攔截器

自定義攔截器需要繼承org.apache.cxf.phase.AbstractPhaseInterceptor 抽象類,并實(shí)現(xiàn)其handleMessage方法,與重寫自定義的構(gòu)造器(由于AbstractPhaseInterceptor 沒有無參構(gòu)造器,所以要在自定義構(gòu)攔截器的造器中調(diào)用supper(帶參數(shù)))。

部分代碼

public class AuthIntercetpr extends AbstractPhaseInterceptor{

public AuthIntercetpr() {

//子類總會(huì)調(diào)用父類的構(gòu)造器,

//默認(rèn)是調(diào)用無參數(shù)的構(gòu)造器。

//指定該攔截器在哪個(gè)階段被激發(fā)

super(Phase.PRE_INVOKE);

}

//處理消息

public void handleMessage(SoapMessage message) {

System.out.println("==================" + message);

//獲取SOAP消息的全部頭

List

headers = message.getHeaders();


if(headers.size() < 1) {

throw new Fault(new SOAPException("SOAP消息頭格式不對哦!"));

}

for(Header header : headers) {

SoapHeader soapHeader = (SoapHeader)header;

//取出SOAP的Header元素

Element element = (Element)soapHeader.getObject();

checkSOAPHeader(element);

}

}

以上就是CXF為Web Service添加攔截器的方法,這三種攔截器各有優(yōu)劣勢,我們在選用的過程中可以根據(jù)實(shí)際需求擇優(yōu)選取,以達(dá)到更好的代碼編寫效果。


提交申請后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 蕾丝视频永久在线入口香蕉 | 日韩精品一区二区三区免费视频 | 曰韩免费视频 | 欧美在线观看免费一区视频 | 高清国产一区 | 精品久久一区二区 | 亚洲第一页中文字幕 | 成人影院vs一区二区 | 亚洲国产三级 | 无毒不卡在线播放 | 成人无遮挡免费网站视频在线观看 | 欧美一级视 | 午夜插插| 妞干网免费在线观看 | 国产黄色a三级三级三级 | 免费观看黄色 | 国内一级野外a一级毛片 | 欧美午夜性刺激在线观看免费 | 三级全黄a | 精品视频一区二区三区在线播放 | 波多野结衣在线观看一区二区三区 | 日日噜噜夜夜狠狠视频buoke | 人人艹人人爽 | 在线a人片免费观看不卡 | 国产精品亚洲一区二区三区正片 | 鸥美性生交xxxxx久久久 | 日韩欧美亚洲视频 | 手机在线视频一区 | 一区二区网站在线观看 | 日本成人社区 | 午夜私人福利影院 | 怡春院日本一区二区久久 | 成人毛片免费在线观看 | 成人国产一区二区三区 | 高清色| 欧美性高清视频免费看www | 免费男女网站 | 亚洲天天在线日亚洲洲精 | www午夜视频 | 欧美性群另类大交人妖 | 亚洲黄色天堂 |