java - 在 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 客户端?
解决方案
我已经自己找到了解决方案。问题是我使用了依赖org.apache.aries.javax.jax.rs-api
而不是javax.ws.rs-api
.
推荐阅读
- java - SOAPMessage 删除命名空间
- javascript - todos.map 不是函数 - 无法编辑特定项目
- docker - Docker Jenkins 插件安装失败
- asp.net - 异步操作后的 HttpContext.Current null
- google-sheets - 计算一个月内出现次数的公式
- c++ - 一个函数可以通过 const 引用来获取参数*而不*接受临时变量作为参数吗?
- python - 为什么 BigQuery API 调用需要这么长时间?
- java - 无法解析为变量 println
- google-apps-script - Google Scripts px 打印单元
- dart - 错误:编译失败。飞镖功能失败