首页 > 解决方案 > 在 OSGi 环境中,如何使用除 jersey 之外的其他 REST 客户端?

问题描述

我目前正在尝试将一个应用程序部署到可以访问外部休息 web 服务的 Apache Felix。我为此使用 jax-rs 并使用 Apache CXF 作为其余客户端,所以我的代码看起来像这样:

ClientBuilder.newClient().target("http://my-endpoint.com/")
.path("path-to-api/")
.request(MediaType.APPLICATION_JSON_TYPE)
.get();

我已经将 Apache CXF REST 客户端部署为 osgi 包,但我仍然收到以下异常:java.lang.ClassNotFoundException: org.glassfish.jersey.client.JerseyClientBuilder cannot be found. 该应用程序在单元测试中以及当我直接使用 implementationorg.apache.cxf.jaxrs.client.WebClient而不是 interface时工作javax.ws.rs.client.Client。如何在 osgi 环境中使用除 jersey 之外的其他 REST 客户端?

标签: javajax-rs

解决方案


我已经自己找到了解决方案。问题是我使用了依赖org.apache.aries.javax.jax.rs-api而不是javax.ws.rs-api.


推荐阅读