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
注释() 元素注释用于表示以下字段或方法: 显示为XML元素@Attribute
- 将相关的xml元素名称设置为
和@Root
注释@element
@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类