从 WSDL 生成类:带有名称错误的重复操作

Onu*_*hin 2 java android wsdl web-services

我正在尝试使用 Eclipse(新 Web 服务客户端)生成 Java 类。

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 生成类?

San*_*osh 5

这就是操作重载的情况。这仅在 WSDL1.1 规范中受支持。根据新的 WSDL1.2 规范,不允许操作重载。您将不得不更改操作的名称。

看看这个链接

从这个链接引用。

重要的是要注意,WSDL 1.1 支持重载操作(请参阅下面“资源”部分中的链接),但已从 WSDL 1.2 的规范草案中删除。制定新草案的委员会已决定不应出现超载。这个决定的原因和意见超出了本文的范围,但在 WSDL 1.2 的当前工作草案中有关于它的参考说明

所以只是为了使它工作,更改操作的名称,或者如果您正在生成客户端,请检查 eclipse 是否提供了一些选项来选择 WSDL 版本。