Ago*_*noX 4 jaxb eclipselink moxy
我有一个非常简单的类,有两个字段,String sourceAddress和int port.
我希望它们映射到源/地址和源/端口节点,而不是jaxb默认的sourceAddress和sourcePort.
所以我使用MOXy @XmlPath注释.
问题是注释只是被忽略,我得到"jaxb默认"xml文件:
<szk>
<sourceAddress>test</sourceAddress>
<sourcePort>10000</sourcePort>
</sz>
Run Code Online (Sandbox Code Playgroud)
提前感谢任何帮助Agostino
import javax.xml.bind.*;
import javax.xml.bind.annotation.*;
import org.eclipse.persistence.jaxb.JAXBContext;
import org.eclipse.persistence.oxm.annotations.XmlPath;
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class SZK {
@XmlPath("source/address")
private String sourceAddress;
@XmlPath("source/port")
private int sourcePort;
public static void main (String [] args) throws JAXBException{
SZK k = new SZK();
k.sourceAddress = "test";
k.sourcePort = 10000;
javax.xml.bind.JAXBContext jc = JAXBContext.newInstance(SZK.class);
Marshaller m = jc.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
m.marshal(k, System.out);
}
}
导致此问题的最可能原因是您缺少该jaxb.properties文件以指定应将EclipseLink MOXy用作JAXB提供程序.该jaxb.properties文件必须与您的域模型放在同一个包中,并包含以下条目:
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
Run Code Online (Sandbox Code Playgroud)
欲获得更多信息:
| 归档时间: |
|
| 查看次数: |
2325 次 |
| 最近记录: |