2011-02-03 28 views

回答

9

您並不需要修改wsdl來實現此目的。如果您正在使用Eclipse Helios Web服務客戶端嚮導,則在指定生成源的輸出文件夾的第二步(可選)上,會出現一個用於定義要封裝的名稱空間的自定義映射的複選框。選擇該框並在下一個表單上,您可以定義您的自定義軟件包映射。

EDIT 1:

鏈接到 Official Documentation

編輯2:如上所示

WSDL

<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
xmlns:tns="http://mycompany.com/MyService.wsdl" 
xmlns:scm="http://mycompany.com/MyService.xsd" 
xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
targetNamespace="http://mycompany.com/MyService.wsdl"> 
... 

對於簡單的wsdl,自定義映射是這樣的,如下。

http://mycompany.com/MyService.wsdl - com.mycompany.ws.workflow http://mycompany.com/MyService.xsd - com.mycompany.ws.workflow.schema

您可以點擊添加,然後輸入名稱空間和包的名字,或者你可以存儲映射屬性文件並單擊導入到它的所有添加一次。我更喜歡屬性文件。另外,如果要使用屬性文件,則必須轉義名稱空間URL和其他特殊字符。你的屬性文件應該如下所示。

nsmapping.properties

http\://mycompany.com/MyService.wsdl=com.mycompany.ws.workflow http\://mycompany.com/MyService.xsd=com.mycompany.ws.workflow.schema

從官方文件摘錄。

屬性文件的內容必須是格式namespace = package。您將需要在屬性文件中轉義一些特殊字符。例如http://someNamespace=somePackage應該是http:// someNamespace = somePackage。否則,冒號(:)將被視爲分隔符,導致嘗試將http映射到// someNamespace = somePackage。

+1

你能提供一個自定義包映射的例子嗎?我在那裏插入什麼? – Bracha 2011-02-03 12:17:09

相關問題