【问题标题】:java.lang.RuntimeException: java.lang.NoClassDefFoundError: javax/ws/rs/client/ClientBuilder in IBM WebSphere 8.5java.lang.RuntimeException:java.lang.NoClassDefFoundError:IBM WebSphere 8.5 中的 javax/ws/rs/client/ClientBuilder
【发布时间】:2014-12-02 18:06:55
【问题描述】:

我正在尝试构建异步 REST 客户端,但在 IBM WebSphere 8.5 中出现以下错误, java.lang.RuntimeException: java.lang.NoClassDefFoundError: javax/ws/rs/client/ClientBuilder

在构建 ClientBuilder 对象时。我试图到处搜索,但为其他应用程序服务器提供了解决方案,而不是为 IBM WebSphere。当我反编译 ClientBuilder 类时,它期望属性 JAXRS_DEFAULT_CLIENT_BUILDER = "org.glassfish.jersey.client.JerseyClientBuilder";

但是 WebSphere 的实现类/属性的价值是什么?

我正在尝试运行的代码,

ClientBuilder cb = ClientBuilder.newBuilder();   // Exception occurs at this line
Client client =   cb.build(); 
WebTarget target  = client.target(URL);
Future<Response> future = target.request(MediaType.APPLICATION_XML).async().
post(Entity.entity(notifications, MediaType.APPLICATION_XML));
Response response  = future.get(5, TimeUnit.SECONDS);
if(response.getStatus() == SUCCESS) {
        respStatus = SUCCESS;
}

我是否缺少一些配置?还是属性设置?

注意:我在类路径中添加了 javax.ws.rs-api-2.0-m10.jar。

【问题讨论】:

    标签: web-services rest jakarta-ee jax-rs websphere-8


    【解决方案1】:

    WebSphere 提供基于 Wink 的 jaxrs-1.1 实现,因此它们会与您提供的库发生冲突。您将需要禁用默认实现并使用您自己的实现,或者创建 Wink 客户端。

    查看这些帖子:

    【讨论】:

    • 谢谢@Gas。我用 Apache Wink 重写了客户端,因为我们在单个服务器上部署了多个应用程序。服务器中的配置更改也会影响其他应用程序,Wink 方法也是如此。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-14
    • 2014-01-13
    • 2020-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多