Jersey Implementando o ContextResolver na primavera
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?
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