成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

使用 Apache cxf 實現(xiàn) WebService 客戶端

mingzhong / 801人閱讀

摘要:證書有兩種形式指定路徑有三種形式的插件可以指定參數(shù)來解決一下常見的問題下的可以選擇所需的命令參數(shù)使用參考添加解決中命名沖突添加指定自動生成的包名

ws-client-demo

客戶端調(diào)用遠程服務(wù)

http://localhost:8280/services/HelloWorld?wsdl

spring + cfx 配置 maven

添加依賴包


  org.apache.cxf
  cxf-rt-frontend-jaxws
  3.2.3


  org.apache.cxf
  cxf-rt-transports-http
  3.2.3
wsdl2java

把 HelloWorld.wsdl 下載到 resources 當(dāng)中

使用 maven 插件 cxf-codegen-plugin 生成代碼

  
    org.apache.cxf
    cxf-codegen-plugin
    3.2.2
    
      
        generate-sources
        generate-sources
        
          ${project.build.directory}/generated/cxf
          
            
              ${basedir}/src/main/resources/HelloWorld.wsdl
            
          
        
        
          wsdl2java
        
      
    
  

maven compile 任務(wù)完成之后在targetgeneratedcxfcomexampledemows 下會有很多文件

    CurrentDate.java
    CurrentDateResponse.java
    HelloWorld.java
    HelloWorldImplService.java
    ObjectFactory.java
    package-info.java
    SayHi.java
    SayHiResponse.java
調(diào)用 WebService 使用 spring

把 HelloWorld.java 復(fù)制到 srcmainjavacomexampledemows 目錄下

同時 HelloWorld.java 里面 @XmlSeeAlso({ObjectFactory.class})這行代碼刪掉




    
package com.example.demo;

import com.example.demo.ws.service.HelloWorld;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import javax.xml.datatype.XMLGregorianCalendar;

public class Main {

    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        HelloWorld client = (HelloWorld) context.getBean("helloClient");

        String resp1 = client.sayHi("小明");
        System.out.println(resp1);
        XMLGregorianCalendar resp2 = client.currentDate();
        System.out.println(resp2.toString());
    }
}
不使用 spring
package com.example.demo;

import com.example.demo.ws.service.HelloWorld;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import java.net.MalformedURLException;
import java.net.URL;

public class WithoutSpring {
    public static void main(String[] args) throws MalformedURLException {
        URL wsdlURL = new URL("http://localhost:8280/services/HelloWorld?wsdl");
        QName SERVICE_NAME = new QName("http://service.ws.demo.example.com/", "HelloWorldImplService");
        Service service = Service.create(wsdlURL, SERVICE_NAME);
        HelloWorld client = service.getPort(HelloWorld.class);
        String result = client.sayHi("小紅");
        System.out.println(result);
    }
}

可以直接運行的demo

GitHub https://github.com/openmartin...

其他配置

demo 中是比較簡單的情況,但是實際的情況會更復(fù)雜,下面介紹一下常用的配置

SSL Certificate and Proxy

參考 https://cxf.apache.org/docs/c...

在 applicationContext.xml 可以為web service client 配置proxy 和 ssl cert,完全不用寫代碼。

ssl 證書有兩種形式 pkcs12、jks, 指定路徑有三種形式 url、file、resource




    

        
            
                
            
            
            
            
            
                
                .*_EXPORT_.*
                .*_EXPORT1024_.*
                .*_WITH_DES_.*
                .*_WITH_AES_.*
                .*_WITH_NULL_.*
                .*_DH_anon_.*
            
        
        

    
    
    

cxf-codegen-plugin

cxf 的 maven 插件可以指定參數(shù)來解決一下常見的問題(下的可以選擇所需的wsdl2java命令參數(shù)使用)

參考 http://cxf.apache.org/docs/ws...

添加-autoNameResolution 解決wsdl中命名沖突

添加-p packagename 指定自動生成的包名

      
        org.apache.cxf
        cxf-codegen-plugin
        3.2.2
        
          
            generate-sources
            generate-sources
            
              ${project.build.directory}/generated/cxf
              
                
                  ${basedir}/src/main/resources/HelloWorld.wsdl
                  
                    -autoNameResolution
                    -verbose
                    -p
                    com.example.demo.ws
                  
                
              
            
            
              wsdl2java
            
          
        
      

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/76334.html

相關(guān)文章

  • RPC框架是啥之Apache CXF一款WebService RPC框架入門教程

    摘要:支持相關(guān)規(guī)范和標(biāo)準(zhǔn),包括同上。支持多種傳輸協(xié)議和協(xié)議綁定數(shù)據(jù)綁定。構(gòu)建端還有其服務(wù)實現(xiàn),接口使用注解,標(biāo)明是一個遠程服務(wù)接口。然后編寫一個的啟動程序,并運行,我想你會成功的因為我看到了下圖是一種跨平臺的技術(shù)協(xié)議。 本博客 貓叔的博客,轉(zhuǎn)載請申明出處 學(xué)習(xí)系列 RPC框架是啥? RPC框架是啥之Java自帶RPC實現(xiàn),RMI框架入門 Apache CXF一款WebService RP...

    SolomonXie 評論0 收藏0
  • SpringBoot 使用CXF 集成WebService

    摘要:啟動后我們直接輸入項目地址指定的服務(wù)名會看到生成的。測試在這就不寫了,大家可以使用生成客戶端,或者直接使用發(fā)送格式數(shù)據(jù)進行請求??偨Y(jié)使用集成開發(fā)很簡單,不用在單獨的部署到外部上,這為我們熟悉開發(fā)的同學(xué)帶了很好的體驗。 1、寫在前面 WebService 對我來說既熟悉又陌生,已經(jīng)將近六七年沒有看到過他了, 具體的介紹我就不多少了, 想了解的百度百科下說的很詳細。 之所以突然研究WebS...

    miracledan 評論0 收藏0
  • Java系統(tǒng)WebService:Spring與CXF的集成

    摘要:我們再使用這樣的來查看這個服務(wù)具體的定義這個用以通過查看服務(wù)也就是我們開頭所說的用通用格式來描述的功能入?yún)⒑头祷刂?,使我們的調(diào)用者明白服務(wù)的使用方法具體詳情可以查看我們的這個服務(wù)的頁面。 WebService是什么呢?顧名思義,是Web系統(tǒng)提供的服務(wù),其目的呢,往大了說:是系統(tǒng)實現(xiàn)多異構(gòu)模塊協(xié)同合作,服務(wù)實現(xiàn)SOA(Services oriented Architecture面向服務(wù)的...

    waterc 評論0 收藏0
  • 使用CXF搭建WebServices服務(wù)端

    摘要:使用創(chuàng)建工程,引入和,如下在中配置和創(chuàng)建要提供服務(wù)接口和實現(xiàn)接口類實現(xiàn)類配置文件注意引入和,然后添加要提供的接口信息全文如下配置完成后,部署到,啟動訪問即可看到服務(wù)已成功發(fā)布??蛻舳藢崿F(xiàn)見下文使用實現(xiàn)客戶端 1 使用Maven創(chuàng)建Java Web工程,引入cxf和spring,pom.xml如下 4.0.0 com.liubo test-cxf 0.0...

    hatlonely 評論0 收藏0
  • WebService就是這么簡單

    摘要:它使用方式,接收和響應(yīng)外部系統(tǒng)的某種請求?;仡櫸覀冊趯W(xué)習(xí)基礎(chǔ)網(wǎng)絡(luò)編程章節(jié)已經(jīng)知道了這么一個連接了。使用指定名稱的命名空間。名詞簡單對象訪問協(xié)議作為一個基于語言的協(xié)議用于有網(wǎng)上傳輸數(shù)據(jù)。以的根元素出現(xiàn)。代理這么一個概念就更加清晰了。 WebService介紹 首先我們來談一下為什么需要學(xué)習(xí)webService這樣的一個技術(shù)吧.... 問題一 如果我們的網(wǎng)站需要提供一個天氣預(yù)報這樣一個需求...

    SwordFly 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<