Dro*_*out 1 java jboss jackson maven
我有一个使用两个 Jackson 注释的类:
@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;
}
}
Run Code Online (Sandbox Code Playgroud)
当我使用将ObjectMapper收到的 JSON 映射到MyObject测试用例中的本地环境时,它可以正常工作,但是如果我将模块部署到 JBOSS AS,则所有注释都将被忽略,我不明白为什么。
我的pom.xml有依赖性:
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)
因此,该库被导入到部署中的 WAR 文件夹中。
为什么部署后注释被忽略?
问题在于由于自动导入旧版本的 Jackson 而导致库冲突。解决方案包括:
<exclusions>
<module name="org.codehaus.jackson.jackson-core-asl" />
<module name="org.codehaus.jackson.jackson-mapper-asl" />
</exclusions>
Run Code Online (Sandbox Code Playgroud)
进入jboss-deployment-structure.xml部署标签。
对其他开发人员的重要提示: 使用新库时,请考虑应用程序服务器的firstclass/lastclass(类加载顺序首选项)设置:WebSphere、Tomcat、JBOSS
| 归档时间: |
|
| 查看次数: |
1826 次 |
| 最近记录: |