You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSO2 API Manager 4.x中如何从自定义OSGi Bundle暴露HTTP端点并复用依赖?

WSO2 API Manager 4.6.0 自定义货币化插件HTTP端点暴露方案问题

我正在为WSO2 API Manager 4.6.0开发自定义货币化插件,该插件打包为JAR部署在/repository/components/lib/下,已通过配置成功加载并在订阅流程中使用。现在需要在同一WSO2运行时中暴露两个HTTP端点,这些端点必须调用插件已使用的现有类和依赖(Java客户端库、WSO2 MySQL数据库的JDBC连接、DAO层等)。

已尝试的方案

  • OSGi HttpService servlet(部署在/dropins/的Bundle):这是标准的OSGi方案,但将Bundle移至/dropins/会引入严格的导入解析。/lib/中的JAR被包装为OSGi Bundle,导出版本设置为0.0.0,导致依赖解析失败(如jakarta.json、org.joda.time、第三方客户端库)。嵌入完整依赖树并不现实。
  • Synapse API + 类中介器:创建Synapse API并调用自定义类中介器也需要将中介器Bundle部署在/dropins/中,这会导致相同的OSGi依赖解析问题。此外,它运行在网关端口,不适合复杂逻辑。
  • 部署在/repository/deployment/server/webapps/的WAR:通过嵌入式Tomcat可以运行,但WAR有独立的类加载器,无法直接访问插件的类。这需要重复依赖和配置。
  • 独立外部服务:调用WSO2 REST API的独立服务可以工作,但会重复凭证、数据库访问、令牌管理和部署复杂度。

问题

在WSO2 API Manager 4.x中,从同一运行时暴露HTTP端点同时复用/lib/已加载的类和依赖的推荐模式是什么?或者,是否可以配置/lib/→/dropins/的OSGi包装,以保留导出包版本并正确解决依赖解析?

环境

  • WSO2 API Manager 4.6.0
  • Equinox OSGi
  • Maven Bundle Plugin 5.1.9
  • Java 19

内容的提问来源于stack exchange,提问作者Mraidi Imen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.02 01:03:10