Java 在某些环境中,JSON中缺少Jackson@XmlRootElement

Java 在某些环境中,JSON中缺少Jackson@XmlRootElement,java,json,jboss,jaxb,jackson,Java,Json,Jboss,Jaxb,Jackson,我正在使用Jackson、RESTEasy、Spring并在JBOSS服务器上运行。 我有一个带有JAXB注释的标准POJO,如下所示: @XmlRootElement(name="aRoot") public class aRoot{ @XmlElement String aString; @XmlElement String bString; } 我遇到的问题是,在一台服务器上,我接收到以下JSON输出

我正在使用Jackson、RESTEasy、Spring并在JBOSS服务器上运行。
我有一个带有JAXB注释的标准POJO,如下所示:

    @XmlRootElement(name="aRoot")
    public class aRoot{
        @XmlElement
        String aString;
        @XmlElement
        String bString;
    }
我遇到的问题是,在一台服务器上,我接收到以下JSON输出:

    {"aRoot":{"aString":"aValue","bString":"bValue"}}
    {"aString":"aValue","bString":"bValue"}
但在另一台服务器上,我收到了以下JSON输出:

    {"aRoot":{"aString":"aValue","bString":"bValue"}}
    {"aString":"aValue","bString":"bValue"}
我对正在发生的事感到困惑。我在两台服务器上都部署了相同的代码,我相信这两台服务器的配置方式是相同的。然而,在这一点上,我想知道是否需要在JBOSS服务器上设置一些配置,以确保根元素得到正确处理,或者是否还有其他事情在进行。有人知道为什么我会在不同的环境中看到这两种截然不同的行为吗

更新:
我解决了这个问题。我通过创建一个类来实现:

    ContextResolver<ObjectMapper>

并为ContextResolver提供了其他必需的实现细节。我还将spring配置为将其实例化为bean,Jackson自己获取它。

可能是一个类路径问题,因为如果我没有弄错的话,spring会通过JavaSPI发现Jackson模块。检查Jackson JAXB模块是否位于两种环境的类路径中。Jackson在两种环境中都位于类路径中。我最终解决了这个问题,创建了一个实现ContextResolver的类,并设置了这个.objectMapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE,true);