2013-01-31 3 views
1

저는 Jackson을 Apache CXF의 JSON 프로 바이더로 사용하고 있습니다. 잭슨 믹스 인을 사용하여 REST 컨트롤러가 반환 한 JSON의 구조를 만들고 싶습니다. 믹스 인은 직렬화 중에 일부 속성을 무시하기 위해 도메인 객체 (주석이 지정되지 않음)에 적용됩니다.동적 CXF와 믹스 믹스 사용하기

믹스 인의 모든 예제는 ObjectMapper 객체를 만들고 런타임에 믹스 인을 적용하는 프로그래밍 방식의 응용 프로그램을 다루고 있습니다. 내 REST 계층에서는 프로그래밍 방식으로 Jackson을 사용하지 않습니다. CXF 용 JSON 공급자로 등록됩니다 (청사진 XML을 통해 - 이것은 OSGI 환경입니다).

제 질문은 명시 적으로 ObjectMapper를 만들고 writeValue()를 호출 할 필요없이 Jackson에 믹스 인을 적용하는 방법입니다. 또한 REST 컨트롤러가 요청 매개 변수를 기반으로 동일한 도메인 객체의 다른 표현을 반환 할 수 있도록 믹스 인을 동적으로 적용하는 방법은 무엇입니까?

JacksonJsonProvider

마이클에게,

답변

0

확인 자바 독을 주셔서 감사합니다 : 명시 적으로 사용하는 매퍼를 전달하여

  • :

    ObjectMapper은 여러 가지 방법으로 설정 될 수 있습니다 사용 생성자에서

  • 에 의해 전자 xplictly setMapper (com.fasterxml.jackson.databind.ObjectMapper)가 사용할 매퍼 설정
  • ObjectMappers를 반환하는 JAX-RS Provider를 정의합니다. (구성 방법이 호출하는 경우 및 구성) 기본 매퍼 인스턴스가 구성되어있는 경우에는 위의 아무도를하지 않는 것으로
  • 나는이 질문에 대답하는 방법을 이해하지 않는의 JavaDoc에서
+0

. 좀 더 자세히 설명해 주시겠습니까? 메소드를 사용할 때'@GET @Path ("{id}") 메소드를 사용할 때 완전한 User 객체를 리턴하도록 serviceBean을 어떻게 구성 할 수 있을까요? 메소드를 사용할 때 User get (@PathParam ("id") String id)'및 일부 속성 만 '@GET 응답 getAllUsers()'? – Nabor

+0

문제는 CXF가 직렬화에 사용하는'ObjectMapper '를 구성하는 방법이었습니다. 나는 Javadoc이이 질문에 대답한다고 믿는다. 당신의 질문은 다르다. 귀하의 경우에는 Jackson의 JSON보기 기능을 살펴보아야합니다. 부분 User 객체에 대한 뷰를 생성하고 거기에 속한 필드에'@JsonView (Partial.class)'로 주석을 달고 부분 객체를 반환해야하는 JAX-RS 메서드에 주석을 달아줍니다. @JsonView (Partial.class)' – HiJon89