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

Java 更改SOAP xml响应中的标记名称(类中的字段和响应中的标记必须不同),java,xml,web-services,soap,wsdl2java,Java,Xml,Web Services,Soap,Wsdl2java,我有这样的课: @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="a

我有这样的课:

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

。。。
1111
1109
...
但我需要:

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

1111
1109
注释
@Attribute(name=“idAddress”)
不起作用。(
org.simpleframework.xml.Attribute


我使用wsdl2java作为wsdl创建者。

尝试以下步骤并修改POJO类,如下所示:

  • 对XML元素使用
    @Element
    注释,而不是
    @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;
    ...
}

如果无法满足字段'addressId'private java.lang.long上的@org.simpleframework.xml.Element(name=idAddress,type=void,data=false,required=true),它就不起作用了。您的元素名称是什么,它是“idAddress”(
@Element(name=“idAddress”)
)?。将其更改为“ax24:addressId”(
@Element(name=“ax24:addressId”)
)。请参考上述答案中的AddressItem.java POJO类