【发布时间】:2016-05-26 22:33:20
【问题描述】:
我正在使用 WSO2 API Manager 1.10.0。如果我发布 API 并订阅,然后使用版本号调用此 API,一切正常。已检查 API 的默认版本。当我在 URL 中向该 API 发送没有版本的请求时,出现异常:
TID: [-1234] [] [2016-05-06 07:23:01,782] ERROR {org.wso2.carbon.apimgt.usage.publisher.APIMgtFaultHandler} - Cannot publish event. null {org.wso2.carbon.apimgt.usage.publisher.APIMgtFaultHandler}
java.lang.NumberFormatException: null
at java.lang.Long.parseLong(Long.java:552)
at java.lang.Long.parseLong(Long.java:631)
at org.wso2.carbon.apimgt.usage.publisher.APIMgtFaultHandler.mediate(APIMgtFaultHandler.java:76)
at org.apache.synapse.mediators.ext.ClassMediator.mediate(ClassMediator.java:84)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:81)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:48)
at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:155)
at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:220)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:81)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:48)
at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:155)
at org.apache.synapse.rest.API.process(API.java:389)
at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:97)
at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:65)
at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:295)
at org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:83)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:317)
at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:149)
at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
我们的 API 管理器配置为与 WSO2 IS 5.1.0 和 WSO2 DAS 一起使用。
【问题讨论】:
-
这个异常堆栈跟踪看起来不像默认端点的问题。你能检查一下你的后端服务连接吗?另外,在此日志之前添加两/三行,以便我们确定此错误的根本原因。
-
我很抱歉。当然在异常之前有消息:在给定请求的 API 中没有找到匹配的资源。但是为什么我会收到这样的消息。请求版本:
-
server:port/name1/name2/1.0/parameter 并且没有版本:server:port/name1/name2/parameter。我必须在上下文 {version} uri 变量中插入吗?
-
异常前还有一条消息:无法发布事件。空
-
如果您将 API 勾选为默认版本并发布,则无需提供版本。这在 APIM 1.10 版本中进行了测试和验证。如果您已编辑 API 并将其设为默认值,您是否重新发布了 API