Wildfly 8.2 Resteasy没有编组XMLRootElement

时间:2015-08-13 08:15:51

标签: java rest resteasy wildfly

我正在从jBoss 7.2向Wildfly 8.2更新一个非常简单的Rest服务,并且遇到了一个问题,即从Resteasy转换为json的服务方法返回的对象不包括在对象上定义的XMLRootElement。

我正在使用maven并将所有java库设置为'提供'所以使用Wildfly捆绑的版本。

我当前的jboss-deployment-structure.xml不包含或排除任何内容,但我尝试在jettison和jaxb之间切换但总是遇到同样的问题。

有没有人看过这个并找到了解决方案,或者我错过了一些简单的东西?

提前感谢您的建议。

1 个答案:

答案 0 :(得分:0)

经过几个小时的挖掘和尝试后,(在发布此问题之前)我发现添加以下类来配置映射器对问题进行了排序。似乎默认情况下,Resteasy不再包装根元素,所以你必须配置它才能这样做....

    @Provider
    public class ObjectMapperContextResolver implements ContextResolver<ObjectMapper> 
    {
        private final ObjectMapper mapper;

        public ObjectMapperContextResolver() 
        {
            mapper = new ObjectMapper();
            mapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true); 
        }

        @Override
        public ObjectMapper getContext(Class<?> type) 
        {
            return mapper;
        }

    }