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

时间:2011-11-25 14:52:05

标签: java android web-services wsdl

我正在尝试使用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建议任何其他工具或开发环境来生成类?

2 个答案:

答案 0 :(得分:3)

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

查看this link

引用此链接。

  

这里需要注意的是,支持重载操作   在WSDL 1.1中(参见下面“参考资料”部分中的链接),但有   已从WSDL 1.2规范草案中删除。委员会   制定新草案已经决定不应该超载   当下。这个决定的理由和意见不在此范围内   本文的范围,但有关于它的参考说明   WSDL 1.2的当前工作草案

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

答案 1 :(得分:0)

或许摆脱wsdl中的第二个OpName操作?