java - Jersey XML 缩进

标签 java jaxb2 jersey-2.0

我有以下代码:

@Path("/search")
public class SearchRestlet
        extends BaseRestlet
{

    @GET
    @Produces({ MediaType.APPLICATION_XML,
                MediaType.APPLICATION_JSON,
                MediaType.TEXT_PLAIN })
    public SearchResult search(...)
            throws IOException, ParseException
    {
        final SearchRequest searchRequest = new SearchRequest(...);
        final SearchResult result = searchService.search(searchRequest);

        return result;
    }

}

这是我的 JAXB 映射对象:

@XmlRootElement(name = "result")
@XmlAccessorType(XmlAccessType.FIELD)
public class SearchResult
{

    @XmlElement
    private String id;

    ...

}

这是我得到的输出:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><result><id>foo</id></result>

这是我想要得到的输出:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<result>
    <id>foo</id>
</result>

如果我直接使用编码器,我知道我可以为此设置一个属性并且它应该可以工作。如何根据上述示例在 Jersey 上下文中完成此操作?

最佳答案

将以下内容添加到您的 web.xml 部署描述符中:

<init-param>
    <param-name>jersey.config.xml.formatOutput</param-name>
    <param-value>true</param-value>
</init-param>

更多详情,查看MessageProperties.XML_FORMAT_OUTPUT .

关于java - Jersey XML 缩进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26787511/

相关文章:

java - Spring javax.validation问题

java - 使用 JFileChooser 而不打开实际文件

java - 在 XMLSerializer 中从 Java 6 升级到 Java 7 时 JAXB 编码器抛出 NullPointerException

mapping - 我可以为 java.util.Map 自定义 JAXB @XmlElementWrapper 元素吗

java - Jersey 给出运行时错误 java.lang.NoClassDefFoundError : org/glassfish/jersey/server/ResourceConfig

jax-rs - Weblogic12c支持jersey 2.x吗?

java - Hibernate实体没有被持久化,但可以创建表和查询

java - 找不到根目录中的属性文件

java - rootElement 忽略 Jaxb implClass 规范

spring - Jersey中是否有类似于Spring的HandlerInterceptor的Interceptor