在Spring中手动命名JaxB元素与WSDL中的另一个元素同名

时间:2018-12-11 14:37:08

标签: java spring soap wsdl cxf

我在Spring中通过“ WSDL to Java Code ...”选项使用apache cxf从第三方的WSDL生成soap客户端(无法修改)。 WSDL遵循以下结构:

$BAR

第一个“示例”实际上是一个数组。从WSDL生成客户端时,域对象解析为ArrayOfExample,这很好。但是,当通过客户端发送一条肥皂消息时,XML将该字段命名为ArrayOfExample“而不是” Example“,这会由于某些验证而导致SOAP服务失败(wsdl期望使用Example而不是ArrayOfExample)

<Test>
    <Example>
        <Example>
        </Example>
        <Example>
        </Example>
    </Example>
</Test>

我尝试使用手动重命名此对象的名称

<Test>
    <ArrayOfExample>
        <Example>
        </Example>
        <Example>
        </Example>
    </ArrayOfExample>
</Test>

但是导致我收到以下错误:

@XmlElement(name = "Example")
public String getExample() { }

我无权修改SOAP服务。

仅供参考:我正在通过以下操作查看XML:

IllegalAnnotationsException: Class has two properties of same name

如何确保所构建的XML使用“示例”而不是“ ArrayOfExample”?

0 个答案:

没有答案