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

部署WSO2 API Manager新API修订版本时遇异常求助

解决WSO2 API Manager 4.1.0添加API修订版本失败的问题

在WSO2 API Manager 4.1.0中尝试部署API新修订版本时触发如下错误,且无法对该API进行删除、修改操作:

ERROR ApisApiServiceImpl Error while adding new API Revision for API : 22691636-953d-4929-adfc-977c3949bb05
org.wso2.carbon.apimgt.api.APIManagementException: Failed to add revision registry artifacts
    at org.wso2.carbon.apimgt.impl.APIProviderImpl.addAPIRevision_aroundBody550(APIProviderImpl.java:8850) ~[org.wso2.carbon.apimgt.impl_9.20.74.jar:?]
    at org.wso2.carbon.apimgt.impl.APIProviderImpl.addAPIRevision(APIProviderImpl.java:8824) ~[org.wso2.carbon.apimgt.impl_9.20.74.jar:?]
    at org.wso2.carbon.apimgt.impl.UserAwareAPIProvider.addAPIRevision(UserAwareAPIProvider.java:1) ~[org.wso2.carbon.apimgt.impl_9.20.74.jar:?]
    at org.wso2.carbon.apimgt.rest.api.publisher.v1.impl.ApisApiServiceImpl.createAPIRevision(ApisApiServiceImpl.java:4177) ~[?:?]
    at org.wso2.carbon.apimgt.rest.api.publisher.v1.ApisApi.createAPIRevision(ApisApi.java:339) ~[?:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
    at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
    at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:179) ~[?:?]
    at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96) ~[?:?]
    at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:201) ~[?:?]
    at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:104) ~[?:?]
    at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59) ~[?:?]
    at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:96) ~[?:?]
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307) ~[?:?]
    at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) ~[?:?]
    at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:265) ~[?:?]
    at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234) ~[?:?]
    at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208) ~[?:?]
    at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160) ~[?:?]
    at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:225) ~[?:?]
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:304) ~[?:?]
    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:217) ~[?:?]

解决方案

  • 检查注册表权限与存储状态
    错误核心是注册表工件添加失败,先排查:

    1. 登录管理控制台,进入注册表 -> 浏览,确认/_system/governance/apimgt/revisions路径存在,且当前发布者用户拥有读写权限。
    2. 检查注册表后端数据库(如MySQL、H2)的磁盘空间是否充足,无锁表、连接超时等异常。
  • 清理损坏的API修订数据
    若修订数据已损坏,手动清理:

    1. 停止WSO2 APIM服务。
    2. 连接注册表数据库,执行SQL定位目标API的修订记录:
      SELECT * FROM AM_API_REVISION WHERE API_UUID = '22691636-953d-4929-adfc-977c3949bb05';
      SELECT * FROM AM_API_REVISION_DEPLOYMENT WHERE API_UUID = '22691636-953d-4929-adfc-977c3949bb05';
      
    3. 备份数据库后,删除上述查询到的损坏记录。
    4. 重启APIM服务,尝试重新创建API修订版本。
  • 修复API元数据一致性
    当API元数据在注册表与数据库中不一致时:

    1. 登录发布者控制台,导出目标API的定义为JSON文件。
    2. 删除数据库AM_API表中对应API_UUID的条目,同时清理注册表/_system/governance/apimgt/apis下的对应API文件夹。
    3. 重新导入导出的API定义,再尝试创建修订版本。
  • 检查文件系统权限
    确认WSO2 APIM运行用户对<APIM_HOME>/repository/registry目录拥有完整读写权限,避免因文件系统权限不足导致注册表操作失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 09:48:05