9.2WebService-CXF

CXF也是WebService的一個(gè)實(shí)現(xiàn)框架,而且跟spring整合的非常好吴攒。下面講一下cxf的主要實(shí)現(xiàn)方式

添加依賴pom.xml

<dependency>
     <groupId>org.apache.cxf</groupId>
     <artifactId>apache-cxf</artifactId>
     <version>2.7.18</version>
      <type>pom</type>
</dependency>

這里選擇的版本是2.7.18,不算新的版本砂蔽,cxf由于依賴太多太多洼怔,而且每個(gè)版本升級(jí),兼容性都比較差左驾,一旦整合到既有系統(tǒng)镣隶,輕易不敢升級(jí)。這里需要根據(jù)需求诡右,刪減一些不用的jar

web.xml配置

<servlet>
        <servlet-name>CXFServlet</servlet-name>
        <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>CXFServlet</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:cxf-beans.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

這里面有兩部分安岂,一個(gè)是cxf的配置,另一個(gè)是整合spring啟動(dòng)

接口定義類CxfService

@WebService
public interface CxfService {
    public String sayHello(String name);
}

主要是利用@WebService這個(gè)注解

接口實(shí)現(xiàn)類

@WebService()
public class CxfServiceImpl {
    public String sayHello(String name) {
        return "hello: " + name;
    }
}

主要是利用@WebService()這個(gè)注解帆吻。

spring配置cfx-beans.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:jaxws="http://cxf.apache.org/jaxws"
       xsi:schemaLocation="http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"
>
    <jaxws:endpoint id="cxfService" implementor="com.critc.cxf.CxfServiceImpl" address="/cxfService"/>
</beans>

主要是利用jaxws這種方式域那,來發(fā)布WebService

都做完后,部署啟動(dòng)猜煮,在地址欄輸入:http://localhost:8080/services

啟動(dòng)顯示

查看WSDL

查看WSDL

動(dòng)態(tài)調(diào)用

public class TestCxf {

    public static void main(String[] args) {
        JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
        org.apache.cxf.endpoint.Client client = dcf
                .createClient("http://localhost:8080/services/cxfService?wsdl");
        // url為調(diào)用webService的wsdl地址
        QName name = new QName("http://cxf.critc.com/", "sayHello");
        // namespace是命名空間次员,methodName是方法名
        String xmlStr = "張三";
        // paramvalue為參數(shù)值
        Object[] objects;
        try {
            objects = client.invoke(name, xmlStr);
            System.out.println(objects[0].toString());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

需要四個(gè)參數(shù),
wsdl的地址:http://localhost:8080/services/cxfService?wsdl
namespace:http://cxf.critc.com/
方法名:sayHello
參數(shù)列表:張三

然后就可以調(diào)用了

調(diào)用結(jié)果.png

CXF可以和Spring很好的整好到一起翠肘,而且CXF還有很多其他功能檐束,并不單單是發(fā)布WebService這一個(gè)功能。有興趣的可以仔細(xì)研究被丧。

源碼下載

本工程詳細(xì)源碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市甥桂,隨后出現(xiàn)的幾起案子柿究,更是在濱河造成了極大的恐慌蝇摸,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件貌夕,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡民镜,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門制圈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來畔况,“玉大人,你說我怎么就攤上這事慧库□喂颍” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵完沪,是天一觀的道長域庇。 經(jīng)常有香客問我,道長覆积,這世上最難降的妖魔是什么听皿? 我笑而不...
    開封第一講書人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮宽档,結(jié)果婚禮上尉姨,老公的妹妹穿的比我還像新娘。我一直安慰自己吗冤,他們只是感情好又厉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著椎瘟,像睡著了一般覆致。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上肺蔚,一...
    開封第一講書人閱讀 51,482評(píng)論 1 302
  • 那天煌妈,我揣著相機(jī)與錄音,去河邊找鬼宣羊。 笑死璧诵,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的仇冯。 我是一名探鬼主播之宿,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼苛坚!你這毒婦竟也來了比被?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤泼舱,失蹤者是張志新(化名)和其女友劉穎等缀,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體柠掂,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡项滑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枪狂。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡危喉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出州疾,到底是詐尸還是另有隱情辜限,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布严蓖,位于F島的核電站薄嫡,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏颗胡。R本人自食惡果不足惜毫深,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一哑蔫、第九天 我趴在偏房一處隱蔽的房頂上張望弧呐。 院中可真熱鬧,春花似錦腥沽、人聲如沸鸠蚪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽汹押。三九已至起便,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間妙痹,已是汗流浹背鼻疮。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來泰國打工判沟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留崭篡,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓琉闪,卻偏偏與公主長得像颠毙,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蛀蜜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理涵防,服務(wù)發(fā)現(xiàn)沪铭,斷路器,智...
    卡卡羅2017閱讀 134,656評(píng)論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,810評(píng)論 6 342
  • 前言 在跨系統(tǒng)和跨平臺(tái)的系統(tǒng)通信中椰憋,WebService是一個(gè)事實(shí)上的標(biāo)準(zhǔn)赔退,其以平臺(tái)無關(guān)性,獲得了廣泛的應(yīng)用窗骑。本文...
    孟婆湯不解渴閱讀 1,827評(píng)論 0 6
  • 一软族、環(huán)境搭建 這里只是初步整合,我們直接將CXF中的lib目錄中的所有jar包全部加入(除去jetty相關(guān)包残制、ge...
    yjaal閱讀 3,581評(píng)論 0 13
  • R:《復(fù)盤》 I:本片段主要講了三個(gè)內(nèi)容:1)復(fù)盤流程的必要性初茶,能夠確保復(fù)盤的進(jìn)展是有序的。2)復(fù)盤流程螺戳,首先分析...
    Scarlett_KK閱讀 219評(píng)論 0 1