jersey 2.5和Spring 2.5集成不起作用

时间:2014-08-13 13:36:13

标签: spring jersey jersey-2.0

我正在尝试将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>

SPRING FILE

<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>  

<bean name="myresource" class="com.xxx.rest.MyResource" autowire="byName"></bean>

XXXSpringIntegration CLASS

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得到初始化时,自动接线工作,因为当弹簧初始化文件时,调用器中的Syserr被调用。但是,当我进行API调用时,adminDAO为空。

 http://bm.com:8080/bm/rest/myresource/list

导致这种情况的原因是,我已经尝试了所有其他排列组合,但是当我们进行API调用时,无论如何自动装配似乎都没有用。

此致

1 个答案:

答案 0 :(得分:0)

Jersey 2.5在Spring 2.5中工作得很好,它只是我的版本中没有的几个jar。我不确定他们是否会使用maven版本,但肯定不会出现在.zip下载中。

此外,没有例外表明罐子丢失了。 jersey-spring3-2.11.jar是明星。