Измените имя тега в ответе SOAP xml (поле в классе и тег в ответе должны отличаться) - PullRequest
0 голосов
/ 14 февраля 2020

У меня есть такой класс:

@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).

Я использую wsdl2 java в качестве создателя wsdl.

1 Ответ

0 голосов
/ 15 февраля 2020

попробуйте выполнить следующие шаги и измените свой класс POJO, как указано ниже,

  • используйте @Element аннотацию для XML элемента вместо @Attribute аннотации ( см. к документации для получения дополнительной информации )

    Аннотация Элемент используется для представления поля или метода, который отображается как элемент 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;
    ...
}
...