2013-12-19 121 views
1

杰克逊注解我有使用两个杰克逊注释类:部署后忽略到JBoss

@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文件夹。

为什么部署后忽略注释?

+1

图书馆冲突也许 - 如果你正在使用JBoss 7已经拥有(旧版本的)Jackson作为RestEasy的一部分。 – Gimby

+0

@Gimby我试过重新部署没有库的战争,并且行为没有改变,不幸的是.. – Dropout

+0

@Gimbly实际上我不得不将它排除在jboss-deployment-structure中。非常感谢我指点正确的方式! – Dropout

回答

3

问题出在图书馆冲突,因为自动导入旧版本的杰克逊。 该解决方案将包括:

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

进入部署中的标签jboss-deployment-structure.xml

重要的提示为其他开发商: 当使用一个新的图书馆考虑到应用服务器的的Firstclass/lastclass(类加载顺序优先)设置:WebSphereTomcatJBOSS