我有一个使用两个杰克逊注释的类:
@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文件夹中。
为什么在部署后请忽略注释?
问题在于由于自动导入了较旧版本的Jackson而导致的库冲突。解决方案包括:
<exclusions> <module name="org.codehaus.jackson.jackson-core-asl" /> <module name="org.codehaus.jackson.jackson-mapper-asl" /> </exclusions>
放入jboss-deployment-structure.xml部署标签中。
jboss-deployment-structure.xml