Я занимаюсь разработкой второго клиентского приложения, которое использует существующие веб-сервисы SOAP.Я генерирую Java из существующего WSDL, используя последнюю версию Apache CXF 2.3
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>
а) Действительно ли оно считается ошибочным по некоторым стандартам?Какой?
б) Есть ли способ обойти это и создать скаффолдинг Java для остальных?Ничего подобного не упоминается на веб-странице CXF WSDL to Java tool , кроме -autoNameResolution, которая не помогает.