我正在尝试使用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建议任何其他工具或开发环境来生成类?
答案 0 :(得分:3)
这是操作重载的情况。这仅在WSDL1.1规范中受支持。根据新的WSDL1.2规范,不允许操作重载。您必须更改操作的名称。
引用此链接。
这里需要注意的是,支持重载操作 在WSDL 1.1中(参见下面“参考资料”部分中的链接),但有 已从WSDL 1.2规范草案中删除。委员会 制定新草案已经决定不应该超载 当下。这个决定的理由和意见不在此范围内 本文的范围,但有关于它的参考说明 WSDL 1.2的当前工作草案
所以只是为了使它工作,更改操作的名称,或者如果要生成客户端,请检查eclipse是否提供了一些选择WSDL版本的选项。
答案 1 :(得分:0)
或许摆脱wsdl中的第二个OpName操作?