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

WSO2 APIM 3.2升级至4.3时自定义中介OSGI打包异常求助

解决WSO2 APIM 4.3自定义中介OSGI打包依赖问题

问题根源

WSO2 APIM 4.3版本中,Synapse组件已升级至3.x系列,而你的OSGI配置自动生成的依赖要求是[2.1.0,3.0.0),和当前环境的Synapse版本不匹配,导致包无法解析启动。

具体修改方案

1. 合并并修正<Import-Package>配置

你当前的pom里重复声明了多次<Import-Package>,这会导致配置冲突,需要合并成单一节点,并明确指定适配APIM4.3的Synapse版本范围:

替换所有<Import-Package>节点为以下内容:

<Import-Package>
  org.apache.commons.lang3.*,
  com.fasterxml.jackson.dataformat.xml;version="2.9.10",
  org.wso2.carbon.apimgt.*,
  org.apache.synapse.*;version="[3.0.0,4.0.0)",
  org.apache.axis2.*,
  *
</Import-Package>
  • 给org.apache.synapse.*指定版本范围[3.0.0,4.0.0),匹配APIM4.3内置的Synapse版本
  • 删除之前所有重复的<Import-Package>声明,避免配置优先级问题

2. 移除不必要的内嵌依赖(推荐)

APIM4.3本身已经内置了Jackson相关组件,无需内嵌jackson-dataformat-xml,否则容易引发版本冲突:

<!-- 直接删除以下两行配置 -->
<Embed-Dependency>jackson-dataformat-xml;scope=compile|runtime</Embed-Dependency>
<Embed-Transitive>true</Embed-Transitive>

如果你的代码必须依赖特定版本的Jackson,可保留但需确认版本与APIM内置版本兼容。

3. 对齐APIM4.3的依赖版本(可选但关键)

在项目的dependencyManagement中引入WSO2 APIM的BOM,确保所有依赖版本与APIM4.3完全对齐:

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.wso2.carbon.apimgt</groupId>
      <artifactId>org.wso2.carbon.apimgt.bom</artifactId>
      <version>4.3.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

修改后的完整maven-bundle-plugin配置

<plugin>
  <groupId>org.apache.felix</groupId>
  <artifactId>maven-bundle-plugin</artifactId>
  <version>${maven-bundle-plugin.version}</version>
  <extensions>true</extensions>
  <configuration>
    <instructions>
      <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
      <Bundle-Name>${project.name}</Bundle-Name>
      <Bundle-Version>${project.version}</Bundle-Version>
      <Bundle-Activator>com.trafficcollector.wso2.PluginActivator</Bundle-Activator>
      <Export-Package>com.trafficcollector.wso2.mediator.*</Export-Package>
      <Private-Package>
        com.trafficcollector.wso2.config,
        com.trafficcollector.wso2.dto*,
        com.trafficcollector.wso2.osgi,
        com.trafficcollector.wso2.publish*,
        com.trafficcollector.wso2.transform*,
        com.trafficcollector.wso2.exception,
        com.trafficcollector.wso2.filter,
        com.trafficcollector.wso2.service,
        com.trafficcollector.wso2.misc
      </Private-Package>
      <Import-Package>
        org.apache.commons.lang3.*,
        com.fasterxml.jackson.dataformat.xml;version="2.9.10",
        org.wso2.carbon.apimgt.*,
        org.apache.synapse.*;version="[3.0.0,4.0.0)",
        org.apache.axis2.*,
        *
      </Import-Package>
    </instructions>
  </configuration>
</plugin>

验证步骤

  1. 执行mvn clean install重新构建项目
  2. 将生成的bundle包放入APIM4.3的repository/components/dropins目录
  3. 启动APIM,检查启动日志是否不再出现依赖解析错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 22:29:52