如何将API接入WSO2 API Manager?接入后未显示问题求助
问题:WSO2 EI 6.6.0 API接入API Manager后未在服务列表显示
问题详情
尝试将API接入WSO2 API Manager,但该API未出现在APIM的服务列表中。相关信息如下:
EI服务器配置截图

API元数据配置文件内容
key: "schoolApi-1.0.0" name : "schoolApi" displayName : "schoolApi" description: "Sample API" version: "1.0.0" serviceUrl: "https://{MI_HOST}:{MI_PORT}/school" definitionType: "OAS3" securityType: "BASIC" mutualSSLEnabled: false apiId : "null"
API Manager服务列表截图

排查与解决方案
1. 修正元数据配置错误
- 替换占位符:将
serviceUrl中的{MI_HOST}和{MI_PORT}替换为EI实际的主机地址和端口(例如https://localhost:8243/school),未替换占位符会导致APIM无法识别有效服务地址。 - 调整apiId字段:
apiId是APIM自动生成的标识,手动设置为"null"会干扰服务注册流程,建议直接移除该字段。 - 补充OAS3定义路径:若
definitionType设为OAS3,需添加definitionPath字段指向本地OpenAPI 3.0定义文件(例如definitionPath: "/home/wso2/api-defs/school-api.yaml"),否则APIM无法获取API定义,可能不展示服务。
2. 检查EI与APIM的服务发现连通性
- 确认EI的
registry.xml和api-manager.xml中已正确配置APIM服务发现端点,示例配置:<serviceDiscovery> <enabled>true</enabled> <serverUrl>https://<APIM_HOST>:<APIM_PORT></serverUrl> <username>admin</username> <password>admin</password> <tenantDomain>carbon.super</tenantDomain> </serviceDiscovery> - 验证EI可访问APIM服务发现API:执行
curl -k https://<APIM_HOST>:<APIM_PORT>/api/am/service-discovery/v1.0/services,确认返回正常。
3. 查看日志定位问题
- 查看EI的
wso2carbon.log(路径:<EI_HOME>/repository/logs/),搜索service-discovery相关内容,检查是否存在服务注册失败、认证错误等日志。 - 查看APIM的
wso2carbon.log(路径:<APIM_HOME>/repository/logs/),搜索ServiceDiscovery或schoolApi,排查服务接收失败的原因。 - 如需更详细日志,可在EI的
log4j2.properties中添加:logger.service-discovery.name = org.wso2.carbon.apimgt.service.discovery logger.service-discovery.level = DEBUG
4. 确认API发布流程
- 确保EI中已正确部署并启动该API,确认服务触发了注册到APIM的流程。
- 检查APIM的
api-manager.xml中是否启用服务发现:<ServiceDiscovery> <Enabled>true</Enabled> </ServiceDiscovery>
内容的提问来源于stack exchange,提问作者Nirodha Wickramarathna
相关产品推荐
相关产品推荐

