2

我想使用 CDATA 块编组我的对象。我可以通过为 CharacterEscapeHandler(http://stackoverflow.com/questions/14193944/jaxb-marshalling-unmarshalling-with-cdata)创建编组器和设置属性来做到这一点。但在泽西,编组是由泽西完成的。那么我怎么能告诉球衣用 CDATA 编组对象。

我有以下服务

@GET
    @Path("/getdata")
    @Produces(MediaType.TEXT_XML)
    public HelloBean getData() throws Exception 
    {
        HelloBean h1 = new HelloBean();
        h1.setName("kshitij");
        return h1;
    }

和豆类是

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name = "root")
@XmlAccessorType(XmlAccessType.FIELD)
public class HelloBean {

    private String name;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

我尝试添加适配器类。但问题是我如何将附加属性设置为球衣正在使用的默认编组器。

我想设置以下属性。

 marshaller.setProperty(CharacterEscapeHandler.class.getName(), new CharacterEscapeHandler() { 
                public void escape(char[] ac, int i, int j, boolean flag,
                Writer writer) throws IOException {
                writer.write( ac, i, j ); }
                });
4

1 回答 1

0

您可以创建一个 JAX-RS MessageBodyWriter。AMessageBodyWriter允许您使用自己的代码来编写 XML 消息。

相关示例

于 2013-01-09T10:51:43.827 回答