项目场景:
项目中使用到apijson的远程函数
问题描述
使用中发现添加一个远程函数之后无法调用,这个函数之前的正常
原因分析:
经过排查发现使用的apijson framework中有一段在启动项目时测试远程函数逻辑:
在APIJSONFunctionParser中有这样一段
FUNCTION_MAP.put(name, item);
String[] methods = StringUtil.split(item.getString("methods"));
JSONObject r = (new APIJSONParser(methods != null && methods.length > 0 ? RequestMethod.valueOf(methods[0]) : RequestMethod.GET, false)).setTag(item.getString("tag")).setVersion(item.getIntValue("version")).parseResponse(demo);
if (!JSONResponse.isSuccess(r)) {
onServerError(JSONResponse.getMsg(r), shutdownWhenServerError);
}
如果是测试失败就不再加载以后的方法,项目中一个远程函数使用到了获取当前登陆人的逻辑,刚启动没有登录人,所以获取当前登录人一定会报错,导致下面的方法都没有加载
解决方案:
查清原因解决方案就有多种,
1、简单方案:直接把启动会报错的逻辑try catch起来
2、正常方案: 在function表中增加一个字段来标识启动测试
例如:
if(item.get("test_flag")!=null&&IsOrNot.Not.getValue()==item.getIntValue("test_flag")){
continue;
}
版权声明:本文为qietingfengsong原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。