Pergunta

Então, estou escrevendo uma primavera (2.5 ( + Jersey (1.1.4.1) e tentando criar uma JSONCONFIGURAÇÃO usando um contextresolver. Aqui está o código:

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

Infelizmente, meu aplicativo ainda está retornando o mapeamento padrão:

{"id": "1", "Pergunta": "Qual é/foi o nome do seu primeiro animal de estimação?"}

Quando depurar o aplicativo, ele nunca atinge esse código. Isso é devido ao uso do SpringServlet? Aqui está minha configuração de camisa na minha 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>

Alguém tem uma configuração semelhante com o JSONCONFIGURAÇÃO funcionando?

Foi útil?

Solução

Você precisa registrar seu provedor em seu contexto de primavera:

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

Ou, se você estiver usando a configuração baseada em anotação, precisará anotar sua classe de provedor com @Component e inclua algo como

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

para a configuração do seu contexto de aplicativo.

Outras dicas

Estou usando o Jersey versão 1.10 e não tenho a anotação @Component nem a definição de feijão, e funciona sem ela.


Jersey Rest Service
com.sun.jersey.spi.spring.container.servlet.springServlet
com.sun.jersey.config.property.packages ca.gc.cbsa.ezfw.foundation.webService 1

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top