91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

怎么使用cmd根據WSDL網址生成java客戶端代碼

發布時間:2021-03-29 13:50:48 來源:億速云 閱讀:314 作者:小新 欄目:開發技術

小編給大家分享一下怎么使用cmd根據WSDL網址生成java客戶端代碼,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

windows下使用cmd命令提示符生成java webservice客戶端代碼,可以使用命令提示符直接生成客戶端代碼,直接導入到項目中,只需配置jdk即可,在jdk的bin文件夾下,按Shift并點擊右鍵,選中“在此處打開命令窗口”

輸入命令如下:

wsimport -keep -p com.demo.client -d D:\\(存放的地址) http://XX/Account?wsdl(wsdl地址)

命令參數說明:

-d:生成客戶端執行類的class文件的存放目錄(默認存放在C:\Users\Administrator\)

-s:生成客戶端執行類的源文件的存放目錄(默認存放在C:\Users\Administrator\)

-p:定義生成類的包名

圖示:

怎么使用cmd根據WSDL網址生成java客戶端代碼

上面代碼是在D盤下生成java代碼,-d代表的是生成class文件和java文件,圖示:

怎么使用cmd根據WSDL網址生成java客戶端代碼

如果把這里的-d改為-s,生成的只有java文件,圖示:

怎么使用cmd根據WSDL網址生成java客戶端代碼

文件里面包名都是我們可以指定的,如果沒有指定,使用的就是根據WSDL文檔里面的targetNamespace來命名。

怎么使用cmd根據WSDL網址生成java客戶端代碼

共勉:這個時代會犒賞那些愛學習的人。

補充:利用wsdl地址生成java客戶端調用類并實現動態配置的方法

前言:

有時,我們經常要和一些外部系統對接,如果是HTTP接口還好,直接用apache的HttpClient工具類調用即可。而如果對方系統是Webservice,則比較麻煩,本文主要講解如何用對方的wsdl地址生成java客戶端調用類并且動態配置訪問地址并在java中使用

1,首先我們先要獲取對方的wsdl地址,例如

http://xxxx/xxxx/xxxx.asmx?wsdl

2, 接著,在cxf官網上下載apache-cxf-3.2.5

2.1,將apache-cxf-3.2.5解壓縮后安裝在D:\\apache-cxf-3.2.5中,設置CXF_HOME環境變量為D:\\ apache-cxf-3.2.5

如下圖所示:

怎么使用cmd根據WSDL網址生成java客戶端代碼

2.2,運行cmd,執行命令wsdl2java,等待大概1秒鐘,出現USAGE證明設置成功

怎么使用cmd根據WSDL網址生成java客戶端代碼

2.3,用wsdl地址執行命令:其中-d代表輸出路徑,后面緊跟著路徑,路徑后面緊跟著地址,按回車鍵,生成成功!

怎么使用cmd根據WSDL網址生成java客戶端代碼

3,生成成功后

由于wsdl是寫死在生成的java類的注解中的,有時我們會使用多套環境進行測試,驗證,而sit和uat環境的wsdl地址是不盡相同的。此時,我們需要動態配置wsdl的地址和命名空間的地址

@Component
public class DebitPushClient implements InitializingBean { 
 private static URL wsdlUrl; 
 private static String debitWsdlUrl; 
 private static String uri; 
 private static QName SERVICE_NAME; 
 public static HttpResult pushDebitData(String jsonData) {
  FinancialSharing ss = new FinancialSharing(wsdlUrl, SERVICE_NAME);
  return (HttpResult) WebServiceClientUtil.invokeWebServiceSoapAction(ss, new QName(uri, "FinancialSharingSoap12"), FinancialSharingSoap.class, "pushDebitData", jsonData);
 }
 
 /**
  * 初始化wsdl連接地址
  */
 private void initWsdlUrl() {
  URL url = null;
  try {
   wsdlUrl = new URL(debitWsdlUrl);
  } catch (MalformedURLException e) {
   java.util.logging.Logger.getLogger(FinancialSharing.class.getName())
     .log(java.util.logging.Level.INFO,
       "Can not initialize the default wsdl from {}",
       debitWsdlUrl);
  }
 }
 
 /**
  * 從配置文件中讀取wsdl地址
  * @param debitWsdlUrl 地址
  */
 @Value("${my.dfdk.wsdl.url:http://xxx.xxx.asmx?wsdl}")
 public void setDebitWsdlUrl(String debitWsdlUrl) {
  DebitPushClient.debitWsdlUrl = debitWsdlUrl;
 }
 
 /**
  * 從配置文件中讀取命名空間地址
  * @param uri 命名空間地址
  */
 @Value("${my.dfdk.wsdl.namespace.uri:http://tempuri.org/}")
 public void setUri(String uri) {
  DebitPushClient.uri = uri;
 }
 
 /**
  * 初始化wsdl
  * @throws Exception
  */
 @Override
 public void afterPropertiesSet() throws Exception {
  initWsdlUrl();
  SERVICE_NAME = new QName(uri, "FinancialSharing");
 }
}

4,客戶端調用,調用成功后,即可獲取正確的響應結果,不需要再將xml轉成java對象

這篇文章,只是簡單介紹了用wsdl地址生成java客戶端調用代碼的一種方法,除此之外,還可以用maven plugin

cxf-codegen-plugin

生成

<build>
  <finalName>cxf-date</finalName>
 
  <plugins>
   <plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-codegen-plugin</artifactId>
    <version>${cxf.version}</version>
    <executions>
     <execution>
      <id>generate-sources</id>
      <phase>generate-sources</phase>
      <configuration>
       <sourceRoot>src/main/resources/cxf</sourceRoot>
       <wsdlOptions>
        <wsdlOption>
         <wsdl>http://localhost:8080/cxf-date/services/BookService?wsdl</wsdl>
         <frontEnd>jaxws21</frontEnd>
         <faultSerialVersionUID>1</faultSerialVersionUID>
        </wsdlOption>
       </wsdlOptions>
      </configuration>
      <goals>
       <goal>wsdl2java</goal>
      </goals>
     </execution>
    </executions>
   </plugin>
  </plugins>
 </build>

以上是“怎么使用cmd根據WSDL網址生成java客戶端代碼”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

元谋县| 通道| 当雄县| 万载县| 确山县| 溆浦县| 陕西省| 夹江县| 临沂市| 桃园市| 麻栗坡县| 孟津县| 隆化县| 五原县| 三亚市| 长顺县| 辽阳县| 九寨沟县| 东乌珠穆沁旗| 江油市| 堆龙德庆县| 汪清县| 京山县| 宜州市| 广元市| 西华县| 上栗县| 南城县| 江都市| 宁城县| 康保县| 靖远县| 错那县| 宁国市| 明水县| 武清区| 玉林市| 霍山县| 钦州市| 土默特右旗| 万山特区|