【发布时间】:2014-08-13 13:36:13
【问题描述】:
我正在尝试将 Jersey(版本 2.x)集成到我们当前使用 Spring 2.5 的项目中。我已经按照他们的 Spring webapp 集成示例中提到的所有步骤进行操作,但在调用 Jersey bean 时似乎无法让自动连接工作。
我的配置/类文件如下,
WEB.XML 文件
<servlet>
<servlet-name>jersey</servlet-name>
<servlet-class>
org.glassfish.jersey.servlet.ServletContainer
</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.inrev.rest.XXXSpringIntegration</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
春季文件
<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
<bean name="myresource" class="com.xxx.rest.MyResource" autowire="byName"></bean>
XXXSpringIntegration 类
public XXXSpringIntegration()
{
register(RequestContextFilter.class);
register(MyResource.class);
System.err.println("I am getting registered");
}
MyResource.class
@Path("myresource")
public class MyResource {
@Autowired
private IRAdminDAO adminDAO;
public MyResource()
{
System.err.println("Getting ready now");
}
/**
* Method handling HTTP GET requests. The returned object will be sent
* to the client as "text/plain" media type.
*
* @return String that will be returned as a text/plain response.
*/
@Path("/list")
@GET
@Produces("application/json")
public String list()
{
System.err.println("Adming DAO "+adminDAO);
return "Got it!";
}
public void setAdminDAO(IRAdminDAO adminDAO)
{
System.err.println("Adming dao being set "+adminDAO);
this.adminDAO = adminDAO;
}
}
为 adminDAO 添加配置
<bean id="adminDAO" class="com.xxx.bm.dao.impl.IRAdminDAOImpl">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
我确信当 Spring get 初始化时自动连接会起作用,因为当文件 get 由 spring 初始化时,setter get 中的 Syserr 会被调用。但是,当我进行 API 调用时,adminDAO 为空。
http://bm.com:8080/bm/rest/myresource/list
这可能是什么原因造成的,我已经尝试了所有其他排列组合,但不知何故,当我们进行 API 调用时,自动装配似乎不起作用。
问候
【问题讨论】:
-
我很确定 Spring 和 Jersey 的集成适用于 Spring 版本 3,而不是 2.5
-
@geoand 旧版本的 Jersey 可以与 Spring 2.5 一起使用吗?我最初的怀疑是一样的,但我找不到任何相同的文档,所以在跳转到球衣 1.x 之前要确定一下
-
我不知道 Spring 2.5 是否可以与 Jersey 集成。我只在 Spring 3 或更高版本中使用过这种集成
-
adminDao 的配置在哪里?
-
@jny 添加了配置
标签: spring jersey jersey-2.0