2009-12-21 2 views
7

Так что я пишу Spring (2,5 (+ Джерси (1.1.4.1) и пытается создать JSONConfiguration используя ContextResolver Вот код:.Джерси реализации ContextResolver <JAXBContext> весной

package com.rhigdon.jersey.config; 

import com.sun.jersey.api.json.JSONConfiguration; 
import com.sun.jersey.api.json.JSONJAXBContext; 

import javax.ws.rs.ext.ContextResolver; 
import javax.ws.rs.ext.Provider; 
import javax.xml.bind.JAXBContext; 

@Provider 
public final class JAXBContextResolver implements ContextResolver<JAXBContext> { 
    private JAXBContext context; 

    public JAXBContextResolver() throws Exception { 
    this.context = new JSONJAXBContext(JSONConfiguration.mappedJettison().build(), "com.rhigdon.core.model."); 
    } 

    public JAXBContext getContext(Class<?> aClass) { 
    return context; 
    } 
} 

К сожалению, мое приложение все еще возвращаются отображение по умолчанию:

{ "ID": "1", "вопрос": "Что такое/был название вашего первого домашнего животного"}

Когда я отлаживаю приложение, он никогда не ударяет по этому коду. Это связано с использованием SpringServlet? Вот мой Джерси Config в моем web.xml:

<servlet> 
    <servlet-name>Jersey Spring Web Application</servlet-name> 
    <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Jersey Spring Web Application</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 

Кто-нибудь есть аналогичные установки с JSONConfiguration работает?

ответ

12

Вы должны зарегистрировать поставщик в вашем весеннем контексте:

<bean class="com.company.jersey.config.JAXBContextResolver"/> 

Или, если вы используете конфигурацию аннотаций на основе, необходимо аннотировать класс поставщика с @Component и включает в себя что-то вроде

<context:annotation-config /> 
<context:component-scan base-package="com.company.jersey" /> 

для конфигурации вашего приложения.

+2

Это было довольно очевидное решение, но я хотел бы ответить на случай, если кто-либо имел ум пустым, как я. :) – rhigdon

1

Я использую джерси версии 1.10, и у меня нет аннотации @Component или определения bean-компонента, и она работает без него.

-4


Джерси REST Service
com.sun.jersey.spi.spring.container.servlet.SpringServlet
com.sun.jersey.config.property.packages ca.gc.cbsa.ezfw.foundation .webservice

+0

Как этот ответ помогает решить проблему? Пожалуйста, объясните свой ответ. –

+0

Не заставляйте людей использовать Весну, когда они этого не хотят. – Orri

Смежные вопросы