我正在从jBoss 7.2向Wildfly 8.2更新一个非常简单的Rest服务,并且遇到了一个问题,即从Resteasy转换为json的服务方法返回的对象不包括在对象上定义的XMLRootElement。
我正在使用maven并将所有java库设置为'提供'所以使用Wildfly捆绑的版本。
我当前的jboss-deployment-structure.xml不包含或排除任何内容,但我尝试在jettison和jaxb之间切换但总是遇到同样的问题。
有没有人看过这个并找到了解决方案,或者我错过了一些简单的东西?
提前感谢您的建议。
答案 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;
}
}