所以我正在写一个Spring(2.5(+ Jersey(1.1.4.1)并尝试使用ContextResolver创建一个JSONConfiguration。这是代码:
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吗?这是我的web.xml中的Jersey Config:
<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相似的设置吗?
答案 0 :(得分:12)
您需要在春季环境中注册您的提供者:
<bean class="com.company.jersey.config.JAXBContextResolver"/>
或者,如果您使用基于注释的配置,则需要使用@Component
注释您的提供者类,并包含类似
<context:annotation-config />
<context:component-scan base-package="com.company.jersey" />
到您的应用程序上下文配置。
答案 1 :(得分:1)
我正在使用jersey版本1.10,我没有@Component注释,也没有bean定义,没有它就可以工作。
答案 2 :(得分:-4)
泽西REST服务
com.sun.jersey.spi.spring.container.servlet.SpringServlet
com.sun.jersey.config.property.packages
ca.gc.cbsa.ezfw.foundation.webservice
1