Parameters 带有baseUriParameter的Mule APIkit截断资源路径,因此出错为';未找到资源';
关于如何让APIkit路由器使用Parameters 带有baseUriParameter的Mule APIkit截断资源路径,因此出错为';未找到资源';,parameters,base-url,mule-esb,apikit,raml-1.0,Parameters,Base Url,Mule Esb,Apikit,Raml 1.0,关于如何让APIkit路由器使用baseUriParameter,有谁能在这里建议/纠正我吗。如果HTTP侦听器连接器中的路径是硬编码的,如/api/process/30001/*,则一切正常。APIKit路由器能够路由请求的资源路径。但是,当HTTP侦听器连接器路径中有一个占位符(如/api/process/{clientID}/*)时,APIkit路由器会抛出一个错误,因为未找到任何资源 从下面的stacktrace中,我可以看到请求资源路径被截断,例如,/sample变成了ple,我找不到
baseUriParameter
,有谁能在这里建议/纠正我吗。如果HTTP侦听器连接器中的路径是硬编码的,如/api/process/30001/*
,则一切正常。APIKit路由器能够路由请求的资源路径。但是,当HTTP侦听器连接器路径中有一个占位符(如/api/process/{clientID}/*
)时,APIkit路由器会抛出一个错误,因为未找到任何资源
从下面的stacktrace中,我可以看到请求资源路径被截断,例如,/sample
变成了ple
,我找不到原因。通过调试,我可以看到完整的请求URI
我尝试了其他几种选择,如:
正在路由器配置中检查“保留raml基本uri”
在HTTP侦听器连接器的高级选项卡中取消选中“解析请求”框
我也检查过了,以确保我的RAML符合要求
我在MuleSoft的文档中发现:
在API Gateway Runtime 2.x及更早版本中,APIkit设计为与RAML接口紧密配合,但不会自动从RAML定义导入以下项:
证券计划
协议
基本参数
那么,如何导入baseUriParameters
?我如何让它工作
我已经被这个问题困扰了很长时间,所以非常感谢您的帮助。如果我遗漏了什么,请纠正我。非常感谢
#%RAML 1.0
title: Test API
baseUri: /api/process/{clientID}
baseUriParameters:
clientID:
type: number
example: 300001
/sample:
get:
responses:
200:
body:
application/json:
流量:
堆栈跟踪:
WARN 2018-06-11 19:52:27,452 [[baseuriprameter-apikit].baseuriprameter-
apikit-httpListenerConfig.worker.01] org.mule.module.apikit.Configuration:
No matching patterns for URI ple
ERROR 2018-06-11 19:52:28,082 [[baseuriprameter-apikit].baseuriprameter-
apikit-httpListenerConfig.worker.01]
org.mule.module.apikit.MappingExceptionListener:
**************************************************
Message : ple
Payload : {NullPayload}
Payload Type : org.mule.transport.NullPayload
Element : /baseuriprameter-apikit-main/processors/0 @
baseuriprameter-apikit:baseuriprameter-apikit.xml:11 (APIkit Router)
Element XML : <apikit:router
xmlns:apikit="http://www.mulesoft.org/schema/mule/apikit" config-
ref="baseuriprameter-apikit-config" doc:name="APIkit Router">
</apikit:router>
--------------------------------------------------------
Root Exception stack trace:
org.mule.module.apikit.exception.NotFoundException: ple
atorg.mule.module.apikit.AbstractConfiguration$2.load(AbstractConfiguration.java:178)atorg.mule.module.apikit.AbstractConfiguration$2.load(AbstractConfiguration.java:169)
atcom.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3527)atcom.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2319)
atcom.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2282)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197)
at com.google.common.cache.LocalCache.get(LocalCache.java:3937)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3941)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4824)
at org.mule.module.apikit.AbstractRouter.processRouterRequest(AbstractRouter.java:177)
at org.mule.module.apikit.AbstractRouter.processBlockingRequest(AbstractRouter.java:104)
at org.mule.module.apikit.AbstractRouter.processBlocking(AbstractRouter.java:98)
WARN 2018-06-11 19:52:27452[[baseuriprameter apikit].baseuriprameter-
apikit httpListenerConfig.worker.01]org.mule.module.apikit.Configuration:
没有URI的匹配模式
错误2018-06-11 19:52:28082[[baseuriprameter apikit].baseuriprameter-
apikit httpListenerConfig.worker.01]
org.mule.module.apikit.MappingExceptionListener:
**************************************************
信息:ple
有效负载:{NullPayload}
有效负载类型:org.mule.transport.NullPayload
元件:/baseuriprameter apikit主/处理器/0@
baseuriprameter apikit:baseuriprameter apikit.xml:11(apikit路由器)
元素XML:
--------------------------------------------------------
根异常堆栈跟踪:
org.mule.module.apikit.exception.NotFoundException:ple
atorg.mule.module.apikit.AbstractConfiguration$2.load(AbstractConfiguration.java:178)atorg.mule.module.apikit.AbstractConfiguration$2.load(AbstractConfiguration.java:169)
atcom.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3527)atcom.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2319)
atcom.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2282)
位于com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197)
位于com.google.common.cache.LocalCache.get(LocalCache.java:3937)
位于com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3941)
位于com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4824)
位于org.mule.module.apikit.AbstractRouter.processRouterRequest(AbstractRouter.java:177)
位于org.mule.module.apikit.AbstractRouter.processBlockingRequest(AbstractRouter.java:104)
位于org.mule.module.apikit.AbstractRouter.processBlocking(AbstractRouter.java:98)
有人遇到这个问题并找到了解决方案吗?谢谢您使用的是哪个版本的Mule运行时?
WARN 2018-06-11 19:52:27,452 [[baseuriprameter-apikit].baseuriprameter-
apikit-httpListenerConfig.worker.01] org.mule.module.apikit.Configuration:
No matching patterns for URI ple
ERROR 2018-06-11 19:52:28,082 [[baseuriprameter-apikit].baseuriprameter-
apikit-httpListenerConfig.worker.01]
org.mule.module.apikit.MappingExceptionListener:
**************************************************
Message : ple
Payload : {NullPayload}
Payload Type : org.mule.transport.NullPayload
Element : /baseuriprameter-apikit-main/processors/0 @
baseuriprameter-apikit:baseuriprameter-apikit.xml:11 (APIkit Router)
Element XML : <apikit:router
xmlns:apikit="http://www.mulesoft.org/schema/mule/apikit" config-
ref="baseuriprameter-apikit-config" doc:name="APIkit Router">
</apikit:router>
--------------------------------------------------------
Root Exception stack trace:
org.mule.module.apikit.exception.NotFoundException: ple
atorg.mule.module.apikit.AbstractConfiguration$2.load(AbstractConfiguration.java:178)atorg.mule.module.apikit.AbstractConfiguration$2.load(AbstractConfiguration.java:169)
atcom.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3527)atcom.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2319)
atcom.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2282)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197)
at com.google.common.cache.LocalCache.get(LocalCache.java:3937)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3941)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4824)
at org.mule.module.apikit.AbstractRouter.processRouterRequest(AbstractRouter.java:177)
at org.mule.module.apikit.AbstractRouter.processBlockingRequest(AbstractRouter.java:104)
at org.mule.module.apikit.AbstractRouter.processBlocking(AbstractRouter.java:98)