2012-03-12 3 views
2

저지와 함께 Grizzly를 사용하여 JSON 웹 서비스를 만듭니다. 다음과 같이 초기화합니다.Jersey가 JSON (de) 직렬화에 Jackson을 사용하도록 프로그래밍 방식으로 어떻게 구성합니까?

final ResourceConfig rc = new PackagesResourceConfig("amplify.api.resources"); 
    rc.getProperties().put(JSONConfiguration.FEATURE_POJO_MAPPING, true); 
    return GrizzlyServerFactory.createHttpServer(BASE_URI, rc); 

web.xml 파일이 없습니다. Jersey가 단일 요소 목록을 "요소"가 아닌 "요소"로 매핑한다는 것을 알았습니다. Jersey가 Jackson 이외의 POJO-> JSON 매퍼를 사용하고 있기 때문에 이것이 필자를 피하는 이유 때문에 단일 요소 목록을 자동으로 unwrap하는 것이 좋습니다.

Jersey가 web.xml 파일을 구성하여 Jackson을 사용하는 방법에 대한 설명을 찾았지만 web.xml이 없으므로이를 수행하는 방법을 잘 모르겠습니다.

Jackson이 프로그래밍 방식으로 저지를 구성 할 수있는 방법을 설명 할 수 있습니까?

답변

0

JacksonJsonProviderthe Jackson jax-rs module에서 살펴보십시오. 그것이 @Provider

+0

-1 : IOC을 수행하면 아무 것도 얻을 수 없습니다. – unludo

+3

응? Jersey를 사용하는 가장 좋은 방법 중 하나는 IoC를 사용하는 것입니다. web.xml 또는 손으로 배선하는 것보다 훨씬 낫습니다! –

+1

+1 : 저는 Guice와 함께이 접근법을 정확히 사용하고 싶습니다. 이 블로그 게시물보기 : http://www.flamingpenguin.co.uk/blog/2012/08/17/use-new-version-of-jackson-json-with-jersey/ – MrDrews

1

I로 등록받을

당신은 저지 인정 IoC 컨테이너에 (또는 JacksonJaxbJsonProvider 등의 서브 클래스)를 연결해야합니다 (기본적으로 자신의,하지만 난 개인적으로 Guice를 선호) 그렇지 않은 경우, 또는 응답이 있습니다 how do I enable POJO-mapping programatically in Jersey using Grizzly2?

아이디어는 jersey-json 라이브러리를 응용 프로그램에 추가하는 것입니다.

<dependency> 
    <groupId>com.sun.jersey</groupId> 
    <artifactId>jersey-json</artifactId> 
    <version>${jersey.version}</version> 
</dependency>