2013-12-19 119 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