Джерси реализовывая ContextResolver <JAXBContext> в Spring

Таким образом, я пишу Spring (2.5 (+ Джерси (1.1.4.1) и пытаюсь создать JSONConfiguration использование ContextResolver. Вот код:

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;
  }
}

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

{"идентификатор": "1", "вопрос": "Каково имя Вашего первого домашнего животного?"}

Когда я отлаживаю приложение, оно никогда на самом деле поражает этот код. Действительно ли это происходит из-за использования SpringServlet? Вот моя Конфигурация Джерси в моем 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?

7
задан rhigdon 21 December 2009 в 21:38
поделиться

1 ответ

Вам необходимо зарегистрировать своего провайдера в контексте Spring:

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

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

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

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

12
ответ дан 7 December 2019 в 03:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: