2011-11-25 42 views
1

我正在嘗試使用Eclipse(New Web Service Client)生成Java類。從WSDL生成類:具有名稱錯誤的重複操作

的Eclipse拋出此異常:

Error in generating Java from WSDL: java.lang.IllegalArgumentException: Duplicate operation with name=OpName, found in portType '{http://tempuri.org/}MyServiceSoap'.

在WSDL:

<wsdl:operation name="OpName"> <wsdl:input message="tns:tnsIn"/> <wsdl:output message="tns:tnsOut"/> </wsdl:operation>

<wsdl:operation name="OpName"> <wsdl:input name="name" message="tns:tnsIn"/><wsdl:output name="name" message="tns:tnsOut"/></wsdl:operation>

我怎樣才能解決這個問題呢?您能否建議其他工具或開發環境根據WSDL生成類?

回答

3

這是操作重載的情況。這僅在WSDL1.1規範中受到支持。根據新的WSDL1.2規範,操作重載是不允許的。您將不得不更改操作的名稱。

退房this link

從這個鏈接引用。

重要的是要在這裏指出,過載操作在WSDL 1.1支持 (請參閱下面的「資源」一節中的鏈接),但 已經從WSDL 1.2規範草案中刪除。開發新草案的委員會 已決定超載不應該是 目前。作出這一決定的理由和意見是這篇文章的 範圍之內,但也有關於它的參考筆記 當前工作草案WSDL 1.2

所以這只是爲了工作,改變了名稱操作,或者如果您正在生成客戶端,請檢查eclipse是否提供了一些選項來選擇WSDL版本。

+0

謝謝。我已經解決了這個問題。但Android不支持一些軟件包。所以我必須找出另一種方式。 –

0

擺脫wsdl中的第二個OpName操作?

+0

我試過了,它會生成類。但是有一個'ClassName類型的層次結構不一致'錯誤。而'java.rmi.Remote'不被識別。也許Android不支持生成Web服務客戶端。 –

相關問題