溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java調(diào)用CXF WebService接口的兩種方式實例

發(fā)布時間:2020-09-06 15:26:54 來源:腳本之家 閱讀:1012 作者:小飛俠-2 欄目:編程語言

通過http://localhost:7002/card/services/HelloWorld?wsdl訪問到xml如下,說明接口寫對了。

Java調(diào)用CXF WebService接口的兩種方式實例

1.靜態(tài)調(diào)用

    // 創(chuàng)建WebService客戶端代理工廠
    JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
    // 判斷是否拋出異常
    factory.getOutInterceptors().add(new LoggingInInterceptor());
    // 注冊webservice接口
    factory.setServiceClass(DeductionService.class);
    // 配置webservice地址
    factory.setAddress("http://localhost:7002/card/services/HelloWorld?wsdl");
    // 獲得接口對象
    CxfService service = (CxfService) factory.create();
    // 調(diào)用接口方法
    String result = service.sayHello("aaaaaaaaaa");
    System.out.println("調(diào)用結(jié)果:" + result);
    // 關(guān)閉接口連接
    System.exit(0);

2.動態(tài)調(diào)用:

JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
    org.apache.cxf.endpoint.Client client = dcf
        .createClient("http://localhost:7002/card/services/HelloWorld?wsdl");
    // url為調(diào)用webService的wsdl地址
    QName name = new QName("http://dao.xcf.digitalchina.com/", "sayHello");
    // namespace是命名空間,methodName是方法名
    String xmlStr = "aaaaaaaa";
    // paramvalue為參數(shù)值
    Object[] objects;
    try {
      objects = client.invoke(name, xmlStr);
      System.out.println(objects[0].toString());
    } catch (Exception e) {
      e.printStackTrace();
    }

區(qū)別:

靜態(tài)調(diào)用需要依賴service類,因為客戶端調(diào)用cxf webservice接口的過程中需要服務(wù)器端提供service,很不方便,如果同一個項目中則沒有區(qū)別。

動態(tài)調(diào)用完全不依賴service類,服務(wù)器端只要提供接口名和路徑就可以方便的調(diào)用。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對億速云的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI