我在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”?