目前我有我的Jersey(JAX-RS)Webservice在我的Webservice方法中使用简单的@Produces("text/xml")
返回带有JAXB注释的对象。不幸的是,输出看起来相当混乱,因为它没有用间隔和空格格式化。Java:Jersey(JAX-RS)和带注释的JAXB_FORMATTED_OUTPUT?
是否有注释,我可以使用像RestEasy的的@Formatted
或
我如何实现一个编组,和在哪里?
目前我有我的Jersey(JAX-RS)Webservice在我的Webservice方法中使用简单的@Produces("text/xml")
返回带有JAXB注释的对象。不幸的是,输出看起来相当混乱,因为它没有用间隔和空格格式化。Java:Jersey(JAX-RS)和带注释的JAXB_FORMATTED_OUTPUT?
是否有注释,我可以使用像RestEasy的的@Formatted
或
我如何实现一个编组,和在哪里?
泽西岛可能有这样的注释,但是如果没有,您可以利用MessageBodyWriter
的JAX-RS概念并直接利用JAXB Marshaller
。下面是一个答案我给其中一个MessageBodyReader
以设置模式验证在JAXB Unmarshaller
被利用的链接:
在新泽西,你可以初始化参数添加到它的servlet :
<init-param>
<param-name>com.sun.jersey.config.feature.Formatted</param-name>
<param-value>true</param-value>
</init-param>
现在(Jersey 2.12)该标志已将其名称更改为jersey.config.xml.formatOutput。它可以在MessageProperties类中找到 – Shirky
我很抱歉,但我有点不明白了如何创建自己的JAXB的Marshaller将格式化我的输出。 –
据我所知,我必须让我自己的MessageBodyWriter达到FEATURE_FORMATTED设置为true,但我不知道如何去做。 –