【问题标题】:jersey 2.5 and Spring 2.5 integration not workingjersey 2.5 和 Spring 2.5 集成不起作用
【发布时间】: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


【解决方案1】:

在 Spring 2.5 中,Jersey 工作正常,只是我的构建中不存在一些 jar。我不确定它们是否会随 maven 构建一起提供,但肯定不会出现在 .zip 下载中。

此外,没有任何异常表明 jar 丢失。 jersey-spring3-2.11.jar 是明星。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    • 1970-01-01
    • 2012-03-05
    • 2011-01-11
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    相关资源
    最近更新 更多