Jaxb 使用MOXy';带jersey的s@XmlCDATA注释

Jaxb 使用MOXy';带jersey的s@XmlCDATA注释,jaxb,jersey,weblogic-10.x,jaxb2,moxy,Jaxb,Jersey,Weblogic 10.x,Jaxb2,Moxy,我正在使用jersey编写RESTWeb服务,并试图输出一些包含CDATA部分的XML。我明白,所以我下载了EclipseLink的MOXy,并试图让@XmlCDATA注释正常工作 我的JAXB映射bean如下所示 package com.me.entities; @XmlRootElement @XmlAccessorType(XmlAccessType.FIELD) public class MyBean { @XmlAttribute private URI thumb

我正在使用jersey编写RESTWeb服务,并试图输出一些包含CDATA部分的XML。我明白,所以我下载了EclipseLink的MOXy,并试图让@XmlCDATA注释正常工作

我的JAXB映射bean如下所示

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; }
}
我在
com/me/entities
中有
jaxb.properties
文件以及类文件。属性文件已被删除

javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
在里面。我确信它会成功加载,因为如果我用一些废话替换工厂类名,应用程序就会崩溃。另外,显式封送文件在我自己创建JAXBContext也很好,因此问题似乎与jersey有关。根据我的设置是可以的,但是当我的jersey资源返回MyBean的实例时

...
@GET @Produces(MediaType.TEXT_XML) 
public MyBean getMyBean() {
    MyBean b = new MyBean();
    b.setDescription("Some blurb plenty of invalid chars like <<< && >>>");

    return b;
 }
。。。
@GET@PRODUCTS(MediaType.TEXT\uXML)
公共MyBean getMyBean(){
MyBean b=新的MyBean();
b、 setDescription(“一些模糊的大量无效字符,如>”);
返回b;
}
我返回的内容中没有CDATA,但看起来像

<?xml version="1.0" encoding="UTF-8"?>
<info><longdescription>Some blurb plenty of invalid chars like &lt;&lt;&lt; &amp;&amp; >>></longdescription></info>

有些人会模糊大量无效字符,如&&;>>

我做错了什么?

看起来问题出在我的应用程序服务器上:我在开发模式下使用WebLogic 10.3.5运行它,它附带了许多预安装的公共库,在默认配置中优先于部署在webapp
WEB-INF/lib
文件夹中的库

要解决此问题,需要weblogic特定的应用程序描述,只需在
WEB-INF
中创建一个
weblogic.xml
文件,其中包含
首选WEB-INF类
选项。我使用的文件如下:

<?xml version='1.0' standalone='yes'?>
<weblogic-web-app>
  <container-descriptor>
    <prefer-web-inf-classes>true</prefer-web-inf-classes>
  </container-descriptor>
</weblogic-web-app>

真的

我仍然不知道哪个库是问题所在,任何人都知道,请随意编辑此答案。

请下载Jaxb扩展: 这是用于Jaxb的Eclipselink开源扩展。 获取jar文件:eclipselink.jar复制到项目库中

http://www.eclipse.org/eclipselink/downloads/
EclipseLink 2.4.1 Installer Zip (37 MB)
请参见以下示例:

好样的