我正在使用Jackson,RESTEasy,Spring并在JBOSS服务器上运行 我有一个带有JAXB注释的标准POJO,如下所示:
@XmlRootElement(name="aRoot")
public class aRoot{
@XmlElement
String aString;
@XmlElement
String bString;
}
我遇到的问题是在一台服务器上我收到了JSON输出:
{"aRoot":{"aString":"aValue","bString":"bValue"}}
然而在另一台服务器上,我收到了JSON输出:
{"aString":"aValue","bString":"bValue"}
我对发生了什么感到困惑。我在两台服务器上都部署了相同的代码,我相信这两种配置方式相同。但是,在这一点上,我想知道是否需要在JBOSS服务器上设置一些配置以确保正确处理根元素,或者是否还有其他事情发生。有谁知道为什么我会在不同的环境中看到这两种明显不同的行为?
更新:
我解决了这个问题。我设法通过创建一个实现的类来实现:
ContextResolver<ObjectMapper>
然后在我设置的构造函数中:
this.objectMapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true);
并为ContextResolver做了其他必需的实现细节。我还配置spring将它实例化为bean,Jackson自己选择它。