采用PATTERN 3部署后,无法在网关中调用API的技术求助
问题:采用PATTERN 3部署API后无法在网关调用,提示无效URL
问题描述
采用PATTERN 3完成API部署后,无法在网关中调用目标API testie:v1.2,调用时返回无效URL错误。
相关日志信息
[2024-03-29 10:43:48,081] INFO - DependencyTracker API : testie:v1.2 已成功添加到Synapse配置中 2024-03-29T10:43:48.081862823Z [2024-03-29 10:43:48,081] INFO - API {api:testie:v1.2} 正在初始化API: testie:v1.2 2024-03-29T10:45:59.721494908Z [2024-03-29 10:45:59,720] INFO - LogMediator {inboundendpoint:SecureWebhookServer} 状态 = 消息已分发至主序列。无效URL., 资源 = /gettie/1.2, 健康检查URL = /gettie/1.2 [2024-03-29 10:46:11,975] INFO - LogMediator {inboundendpoint:SecureWebhookServer} 状态 = 消息已分发至主序列。无效URL., 资源 = /gettie/1.2, 健康检查URL = /gettie/1.2 2024-03-29T10:46:12.398656860Z [2024-03-29 10:46:12,398] INFO - LogMediator {inboundendpoint:SecureWebhookServer} 状态 = 消息已分发至主序列。无效URL., 资源 = /favicon.ico, 健康检查URL = /favicon.ico 2024-03-29T10:46:12.400018041Z [2024-03-29 10:46:12,398] WARN - PassThroughHttpSender 尝试向已关闭的连接提交响应 : http-incoming-16
问题分析
- 前两条日志确认API
testie:v1.2已成功添加到Synapse配置并完成初始化,部署流程无异常。 - 核心错误为
无效URL., 资源 = /gettie/1.2,说明网关接收到的请求路径/gettie/1.2无法匹配到已部署的API,路径不匹配是根因。 - 最后的连接关闭警告是无效URL导致的后续问题,无需单独处理。
解决方案
- 核对API上下文路径配置
- 检查
testie:v1.2的API上下文路径是否为/testie/1.2,而非请求中的/gettie/1.2。在API Manager配置页面确认上下文路径与版本的组合是否和请求路径一致。
- 检查
- 检查Inbound Endpoint路由规则
- PATTERN 3部署依赖的
SecureWebhookServer入站端点,需确认其URL Pattern包含目标API的上下文路径,或已配置正确的路由规则将请求转发至testie:v1.2,同时排查是否存在路径冲突。
- PATTERN 3部署依赖的
- 验证Synapse配置文件
- 查看
<APIM_HOME>/repository/deployment/server/synapse-configs/default/api/下对应API的XML文件,确认<api>标签的context属性、<resource>标签的uri-template是否与请求路径匹配。
- 查看
- 使用正确路径测试
- 若API上下文路径为
/testie/1.2,尝试用正确路径调用:http://<网关地址>:<端口>/testie/1.2/[资源路径],替换为实际的网关信息和资源路径。
- 若API上下文路径为
内容的提问来源于stack exchange,提问作者Ajith Nirmal
相关产品推荐
相关产品推荐

