我正在使用Jersey編寫的REST web服務,我試圖用CDATA部分輸出一些XML。我瞭解the reference implementation of JAXB doesn't support that,所以我已經下載了EclipseLink的MOXy,並試圖讓@XmlCDATA註釋生效。使用MOXy的@XmlCDATA註釋與澤西
我JAXB映射豆看起來像這樣
package com.me.entities;
@XmlRootElement @XmlAccessorType(XmlAccessType.FIELD)
public class MyBean {
@XmlAttribute
private URI thumbnail;
@XmlElement(name="longdescription") @XmlCDATA
private String description;
public MyBean() { }
public final String getDescription() { return description; }
public final void setDescription(String d) { this.description = d; }
}
和我有jaxb.properties
文件中的com/me/entities
與類文件一起。屬性文件有
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
在裏面。我確定它被成功加載,因爲如果我用一些廢話替換工廠類名稱,應用程序就會崩潰。另外,顯式編組創建JAXBContext的文件在我自己的工作中很好,所以問題似乎與球衣相關。據this我的設置是好的,但是當我的球衣資源返回爲myBean
...
@GET @Produces(MediaType.TEXT_XML)
public MyBean getMyBean() {
MyBean b = new MyBean();
b.setDescription("Some blurb plenty of invalid chars like <<< && >>>");
return b;
}
我回來在它沒有CDATA一個實例,但看起來像
<?xml version="1.0" encoding="UTF-8"?>
<info><longdescription>Some blurb plenty of invalid chars like <<< && >>></longdescription></info>
我在做什麼錯?