环境
Java:1.8*
QLexpress:3.2.0
前言
今天一天被特殊字符^@、\u0000
,坑的不要不要的。在页面上和日志上,根本看不出来,简直吐血。
直到登录服务器,使用vim
命令看日志,才看出效果。
情况
今天在测试规则引擎,表达式总是执行异常。一开始总是报方法找不到。但是类和方法明明存在的,尝试各种方法。
比如:方法重命名,重新部署。单独调接口(这个可以)。就是不行。只要走到QLExpress执行时,就是找不到方法
登录服务器后,vim查看:
真是把我坑的不行。
为什么日志看不出来呢?因为没有使用JSONObject.toJSONString();进行序列化,所以看不出来。序列化后:
也就是序列化后,是可以看出来的
解决办法
/**
* 处理特殊表达式
*/
public String processChar(String express) {
String replaceStr = express.replace("^@", "");
replaceStr = replaceStr.replace("\\u0000", "");
replaceStr = replaceStr.replace("\u0000", "");
LOGGER.info("qlExpress运行成功 处理后字符串:express:{}", replaceStr);
return replaceStr;
}
参考地址: