【发布时间】:2010-10-29 06:08:10
【问题描述】:
我正在开发使用现有 SOAP Web 服务的第二个客户端应用程序。 我使用最新的 Apache CXF 2.3 工具从现有的 WSDL 生成 Java
wsdl2java -client -ant http://172.20.0.22/someletters/TradingServer.asmx?WSDL
得到
WSDLToJava 错误:java.lang.IllegalArgumentException:此服务中已存在名称为 [{urn:someschema:TradingServer}GetTradeSummary] 的操作
这是有逻辑的,因为在查看 WSDL 文件时,您可以看到 2 个类似的操作 GetTradeSummary,但使用不同的 soapAction。
<wsdl:operation name="GetTradeSummary">
<soap:operation soapAction="urn:someschema/GetTradeSummary" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetTradeSummary">
<soap:operation soapAction="urn:someschema/GetTradeSummary_Open" style="document" />
<wsdl:input name="GetTradeSummary_Open">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="GetTradeSummary_Open">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
a) 它真的以某种标准被认为是错误的吗?哪一个?
b) 有没有办法绕过这个并为其余部分生成 Java 脚手架? CXF WSDL to Java tool web page 没有提到这样的内容,除了 -autoNameResolution 没有帮助。
【问题讨论】: