2011-07-19 17 views
4

目前我有我的Jersey(JAX-RS)Webservice在我的Webservice方法中使用简单的@Produces("text/xml")返回带有JAXB注释的对象。不幸的是,输出看起来相当混乱,因为它没有用间隔和空格格式化。Java:Jersey(JAX-RS)和带注释的JAXB_FORMATTED_OUTPUT?

是否有注释,我可以使用像RestEasy的的@Formatted

我如何实现一个编组,和在哪里?

回答

0

泽西岛可能有这样的注释,但是如果没有,您可以利用MessageBodyWriter的JAX-RS概念并直接利用JAXB Marshaller。下面是一个答案我给其中一个MessageBodyReader以设置模式验证在JAXB Unmarshaller被利用的链接:

+0

我很抱歉,但我有点不明白了如何创建自己的JAXB的Marshaller将格式化我的输出。 –

+2

据我所知,我必须让我自己的MessageBodyWriter达到FEATURE_FORMATTED设置为true,但我不知道如何去做。 –

4

在新泽西,你可以初始化参数添加到它的servlet :

<init-param> 
    <param-name>com.sun.jersey.config.feature.Formatted</param-name> 
    <param-value>true</param-value> 
</init-param> 
+1

现在(Jersey 2.12)该标​​志已将其名称更改为jersey.config.xml.formatOutput。它可以在MessageProperties类中找到 – Shirky