【问题标题】:JBoss6 with REST client (jersey-client)带有 REST 客户端的 JBoss6 (jersey-client)
【发布时间】:2011-09-29 06:56:51
【问题描述】:

我想在我的网络应用程序中使用 REST 服务(.war 与 6.0.0.Final),但在添加 jersey-client 库时遇到问题:

<dependency>
  <groupId>com.sun.jersey</groupId>
  <artifactId>jersey-client</artifactId>
  <version>1.9.1</version>
  <type>jar</type>
  <scope>compile</scope>
</dependency>

使用此配置,我在 JBoss 启动期间收到以下错误:

08:11:28,297 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].
[localhost].[/test]] Exception starting filter Resteasy:
java.lang.ClassCastException: com.aht.erp.web.rest.JaxRsActivator
cannot be cast to javax.ws.rs.core.Application

我的 webapp 有一个激活的 JAX-RS,带有以下注释:

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

@ApplicationPath("/rest")
public class JaxRsActivator extends Application {}

如果我不添加依赖项,我的战争就会开始,但是当调用 jersey-client 时,我当然会得到一个NoClassDefFoundError: com/sun/jersey/api/client/config/ClientConfig。通过排除 jersey-core 我得到这个错误:NoClassDefFoundError: com/sun/jersey/core/util/FeaturesAndProperties

【问题讨论】:

    标签: java jersey jax-rs jboss6.x


    【解决方案1】:

    我认为问题在于您试图在您的网络应用程序中混合两种不同的 jax-rs 实现。对于您的 RESTful 资源,您使用的是 RESTEasy,而在客户端您想使用 Jersey - 全部由同一个 jar 使用。然而 Jersey 客户端依赖于 Jersey 核心,这与 RESTEasy 冲突。因此,您要么必须依赖 RESTEasy 客户端 API,要么也将服务器端切换到 Jersey。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-21
      • 2011-08-20
      • 1970-01-01
      • 2011-08-27
      • 1970-01-01
      • 2016-11-28
      • 1970-01-01
      相关资源
      最近更新 更多