我们正在尝试生成一个 Java SOAP 客户端以与外部服务集成。由于这是一家外部公司,因此不能选择更改 WSDL。
尝试使用 cxf-codegen-plugin Maven 插件生成客户端时,我们收到以下错误:
Two declarations cause a collision in the ObjectFactory class.
该问题与 WSDL 中的以下声明有关:
<s:element name="CallSomeMethod">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="GetSomeDataResult" type="tns:InterfaceReturnCode" />
<s:element minOccurs="0" maxOccurs="1" name="getSomeDataResult" type="tns:GetSomeDataResult" />
</s:sequence>
</s:complexType>
</s:element>
很明显可以看出问题出在哪里。我的问题是,WSDL 似乎可以通过在线通用 SOAP 客户端很好地导入,所以它至少必须是有效的。我还读到生成没有该-p
选项的 Java 代码将导致生成器创建单独的包,这应该可以解决问题。但是,如何使用 cxf-codegen-plugin Maven 插件来做到这一点?