更改SOAP xml响应中的标记名称(类中的字段和响应中的标记必须不同)

问题描述 投票:0回答:1

我有这样的课程:

@Root(name = "address_v1", strict = false)
public class AddressItem {

    @Attribute(name = "idAddress")
    private Long addressId;

    @Attribute(name = "idClient")
    private Long clientId;
...
}

我有回应:

...
<ax23:address xsi:type="ax24:AddressItem">
   <ax24:addressId>1111</ax24:addressId>
   <ax24:clientId>1109</ax24:clientId>
...

但是我需要:

<ax23:address xsi:type="ax24:AddressItem">
   <ax24:idAddress>1111</ax24:idAddress>
   <ax24:idClient>1109</ax24:idClient>

注释@Attribute(name = "idAddress")不起作用。 (org.simpleframework.xml.Attribute)。

我使用wsdl2java作为wsdl创建者。

java xml web-services soap wsdl2java
1个回答
0
投票

尝试以下步骤,并按照以下说明修改您的POJO类,

  • 对XML元素使用@Element注释,而不是@Attribute注释(please refer to documentation for more info

    元素注释用于表示一个字段或方法,显示为XML元素。

  • 将相关的xml元素名称设置为@Root@Element批注

AddressItem.java

@Root(name = "ax23:address", strict = false)
public class AddressItem {

    @Element(name = "ax24:addressId")
    private Long addressId;

    @Element(name = "ax24:clientId")
    private Long clientId;
    ...
}
© www.soinside.com 2019 - 2024. All rights reserved.