Percy

部署到JBOSS后将忽略Jackson批注

java

我有一个使用两个杰克逊注释的类:

@JsonIgnoreProperties(ignoreUnknown = true)
public class MyObject{

    @JsonProperty(value = "fooVal")
    private String foo;

    public MyObject(){}        

    public String getFoo() {
        return foo;
    }

    public void setFoo(String foo) {
        this.foo = foo;
    }
}

在测试用例中,当我使用ObjectMapper来将接收到的JSON映射到MyObject本地环境时,它可以正常工作,但是,如果将模块部署到JBOSS AS中,所有注释都将被忽略,我不知道为什么。

我pom.xml有依赖性:

<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-mapper-asl</artifactId>
</dependency>

因此,该库将导入到部署中的WAR文件夹中。

为什么在部署后请忽略注释?


阅读 289

收藏
2020-12-03

共1个答案

小编典典

问题在于由于自动导入了较旧版本的Jackson而导致的库冲突。解决方案包括:

<exclusions>
        <module name="org.codehaus.jackson.jackson-core-asl" />
        <module name="org.codehaus.jackson.jackson-mapper-asl" />
</exclusions>

放入jboss-deployment-structure.xml部署标签中。

2020-12-03