簡體   English   中英

如何使用CXF更改WebService的名稱?

[英]How to change the name of a WebService using CXF?

我們有一個Web服務,我們稱之為CarLoans,它是cxf基於WSDL文件生成的。 使用maven-resources-plugin從外部依賴項檢索WSDL。 cxf-codegen-plugin有一個綁定文件,我們使用該文件為其他各種元素添加前綴,例如WebService的請求和響應對象。 假設我們希望請求和響應對象的前綴是WS,而CarLoans的前綴是EndPoint。 我們如何使用bindings.xml文件配置它? 產生的Java代碼應大致如下所示(不相關的注釋等除外):

@WebService(targetNamespace="http://url.com/", name="CarLoansPortType")
public interface CarLoansPortType {
  public WSCarLoansResponse getCarLoans(@WebParam(name = "request") WSCarLoansRequest request)
}

我在apache郵件存檔中找到了一個有趣的鏈接-http: //mail-archives.apache.org/mod_mbox/cxf-users/201202.mbox/%3CCAMHV5gYe8VQDoBfKdEP9nrg-VXy9FnA9BL_4oqpEE_zKC2=-x3w@mail。

相關代碼粘貼在下面:

<jaxws:bindings 
  xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
  <jaxws:bindings node="wsdl:definitions/wsdl:portType[@name='CREATE_RECIPE']">
      <jaxws:class name="CreateRecipeSEI"/>
  </jaxws:bindings>
</jaxws:bindings>

因此,基本上,這應該很容易做到。 我在使XPATH表達式正常工作時遇到了一些本地問題,但這顯然是我們想要的。

我不建議這樣做。

您使用的是“合同優先”方法,其中Web服務及其數據類型在WSDL文件中定義。 然后使用工具以給定的編程語言生成適當的代碼。

但是,如果您是有關WSDL的作者,則需要修改WSDL中的數據類型的名稱。 <types>元素下查找數據類型定義。 WSDL非常復雜,只有在知道自己在做什么的情況下,才應修改它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM