2013-01-11 5 views
9

JBoss 7.1.1의 WAR 아카이브에 Jax-rs 끝점이 배포되었습니다. JSON 응답에서 내 null 필드 이름을 포함시키지 않으므로 @JsonSerialize을 입력하십시오.JBoss 7.1.1에서 maven dependecy가 제공되도록 설정된 경우 @@JsonSerialize가 무시되었습니다.

class MyResponse { 

    private Long id; 

    @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) 
    private String name; 

    private List<String> addresses; 

    // getters and setters 
} 

pom.xmlresteasy-jackson-provider에 대한 scope가이 주석을 무시하고 JSON 응답에 null을 반환 provided로 설정되어 다음

<dependency> 
     <groupId>org.jboss.resteasy</groupId> 
     <artifactId>resteasy-jaxrs</artifactId> 
     <version>2.3.2.Final</version> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.jboss.resteasy</groupId> 
     <artifactId>resteasy-jackson-provider</artifactId> 
     <version>2.3.2.Final</version> 
     <scope>provided</scope> 
    </dependency> 

있습니다. 그러나 내가 Maven 종속성에서 scope을 제거하면 작동합니다.

여기 페이지에서 https://docs.jboss.org/author/display/AS71/Implicit+module+dependencies+for+deployments Jax-RS 배포가 발견되면 JBoss가이 모듈을 자동로드해야합니다.

이제 이것이 버그인지 그리고이 종속성을 포함해야하는지 (잘 모르겠다면 provided). 아니면 뭔가 잘못하고있는 것일까 요?

답변

14

JBoss 배포 구조 설명자를 만들어야합니다.

이 나는 ​​그것이 SRC/메인/웹 애플리케이션/WEB-INF/JBoss에 배포-structure.xml 아래에있을 것입니다 가정 메이븐 프로젝트

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0"> 
    <deployment> 
    <dependencies> 
     <module name="org.codehaus.jackson.jackson-core-asl" /> 
     <module name="org.codehaus.jackson.jackson-mapper-asl" /> 
    </dependencies> 
    </deployment> 
</jboss-deployment-structure> 

이 수 때문에 내장 RESTEasy가 지원 Jackson은 JBoss 7.1.x 또는 JBoss EAP 6.x에서 올바르게 작동합니다. 이 설명자가 없으면 RESTEasy는 Jettison 공급자를 사용합니다.

+0

Mark, 제게는 JBoss EAP 6.3을 사용하고 있습니다. –

관련 문제