首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >API发送中介程序:"Uncaught {org.apache.axis2.transport.base.threads.NativeWorkerPool} java.lang.NumberFormatException: null“

API发送中介程序:"Uncaught {org.apache.axis2.transport.base.threads.NativeWorkerPool} java.lang.NumberFormatException: null“
EN

Stack Overflow用户
提问于 2017-02-06 12:33:26
回答 1查看 1.1K关注 0票数 1

我有2个API,如下所示,我试图使用发送中介从我的API2中调用API1,但是没有返回响应,错误被打印在日志中:

API1 -

URLhttps://localhost:8243/sendtest/1.0/{num}

在流序列

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<sequence name="send_mediator_test_in" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
    <property expression="get-property('uri.var.num')" name="uri.var.num" scope="default" type="STRING"/>
    <send>
        <endpoint>
            <http method="get" uri-template="https://localhost:8243/protest/1.0/{uri.var.num}"/>
        </endpoint>
    </send>
</sequence>

API2 -(原型)

URLhttps://localhost:8243/protest/1.0/{num}

内联脚本

代码语言:javascript
复制
mc.setProperty('CONTENT_TYPE', 'application/json');
var Num = mc.getProperty('uri.var.num');
mc.setPayloadJSON({ "NumberReturn": Num });

响应

代码语言:javascript
复制
{
    "NumberReturn": "100"
}

使用下面的环境调用API1可以正常工作,并返回正确的响应。

代码语言:javascript
复制
OS: Windows 7
Java: 1.7.0_45
WSO2 AM: 2.0.0

但是在下面的环境中会出错。

代码语言:javascript
复制
OS: Red Hat Enterprise Linux Server release 6.8 (Santiago)
Java: 1.7.0_101
WSO2 AM: 2.0.0

调用API1时出错

代码语言:javascript
复制
TID: [-1] [] [2017-02-03 06:34:23,265] DEBUG {org.apache.synapse.transport.http.wire} -  HTTPS-Sender I/O dispatcher-2 >> "[\r][\n]" {org.apache.synapse.transport.http.wire}
TID: [-1] [] [2017-02-03 06:34:23,265] DEBUG {org.apache.synapse.transport.http.wire} -  HTTPS-Sender I/O dispatcher-2 >> "a4[\r][\n]" {org.apache.synapse.transport.http.wire}
TID: [-1] [] [2017-02-03 06:34:23,265] DEBUG {org.apache.synapse.transport.http.wire} -  HTTPS-Sender I/O dispatcher-2 >> "0[\r][\n]" {org.apache.synapse.transport.http.wire}
TID: [-1] [] [2017-02-03 06:34:23,265] DEBUG {org.apache.synapse.transport.http.wire} -  HTTPS-Sender I/O dispatcher-2 >> "[\r][\n]" {org.apache.synapse.transport.http.wire}
TID: [-1234] [] [2017-02-03 06:34:23,278] ERROR {org.apache.axis2.transport.base.threads.NativeWorkerPool} -  Uncaught exception {org.apache.axis2.transport.base.threads.NativeWorkerPool}
java.lang.NumberFormatException: null
        at java.lang.Long.parseLong(Long.java:404)
        at java.lang.Long.parseLong(Long.java:483)
        at org.wso2.carbon.apimgt.gateway.handlers.common.APIMgtLatencyStatsHandler.handleResponse(APIMgtLatencyStatsHandler.java:43)
        at org.apache.synapse.rest.API.process(API.java:323)
        at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:90)
        at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:56)
        at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:300)
        at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:554)
        at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:188)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
        at org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:255)
        at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
TID: [-1234] [] [2017-02-03 06:34:30,750]  INFO {org.wso2.andes.server.handler.ChannelCloseHandler} -  Received channel close for id 1 citing class 0 and method 0 {org.wso2.andes.server.handler.ChannelCloseHandler}
TID: [-1234] [] [2017-02-03 06:34:30,750]  INFO {org.wso2.andes.server.AMQChannel} -  No consumers to unsubscribe on channel [/127.0.0.1:53226(admin):1] {org.wso2.andes.server.AMQChannel}
TID: [-1234] [] [2017-02-03 06:34:30,750]  INFO {org.wso2.andes.kernel.FlowControlManager} -  Channel removed (ID: 127.0.0.1:53226) {org.wso2.andes.kernel.FlowControlManager}
TID: [-1234] [] [2017-02-03 06:34:30,752]  INFO {org.wso2.andes.server.handler.ConnectionCloseMethodHandler} -  ConnectionClose received with reply code/reply text 200/JMS client is closing the connection. for /127.0.0.1:53226(admin) {org.wso2.andes.server.handler.ConnectionCloseMethodHandler}

请告诉我出了什么问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-07 14:56:40

这是APIM2.0.0中的一个已知的问题,在2.1.0中是固定的

当您启用分析时,原型API或其他没有APIAuthenticationHandler的API就会发生这种情况。也许您只在Windows设置中启用了分析功能。

作为一种解决办法,

代码语言:javascript
复制
<property expression="get-property('SYSTEM_TIME')" name="api.ut.backendRequestTime"/>

在您的原型API的inSequence内部,如下所示。

代码语言:javascript
复制
<inSequence>
     <script language="js">your-js-goes-here</script>
     <property expression="get-property('SYSTEM_TIME')" name="api.ut.backendRequestTime"/>
...
...
<inSequence>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42067928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档