丶小柒灬 2017-07-14 03:54 采纳率: 50%
浏览 596
已结题

关于多线程访问表达式解析工具类出错

工具类如下:
public static String evaluate(String expression, ModelData modelData) {
ExpressionFactory factory = ExpressionFactory.getInstance();
Expression expr = factory.getExpression(expression);
Set fieldSet = expr.getVariableNames();
expr.addFunction(new SubString());
expr.addFunction(new MD5());
for (String fieldName : fieldSet) {
if (null == expr.getVariableValue(fieldName)) {
String fvalue = modelData.getFieldValue(fieldName);
expr.setVariableValue(fieldName, fvalue);
}
}

    Valuable result = expr.evaluate();
    return (result.getValue() == null) ? "" : result.getValue().toString();
}
    多线程访问的时候会出现:
    neu.sxc.expression.syntax.ArgumentsMismatchException:the operator(or method) judge(boolean,String,String) is undefined for the arguments (String)
    还有:
    neu.sxc.expression.syntax.ArgumentsMismatchException:the operator(or method) md5(String) is undefined for the argumenge(boolean,String,String)
    md5函数是我自定义的函数,judge是系统的自带函数,貌似多线程处理的时候将这两个函数搞混了。在出错的时候打印对应的表达式和参数信息,均无误,但是就是执行的时候会偶尔出错。搞不通- - 求用过的大神帮帮忙。
    ps:单线程跑没有一点问题。
  • 写回答

1条回答 默认 最新

  • dabocaiqq 2018-07-31 15:49
    关注
    评论

报告相同问题?

悬赏问题

  • ¥20 ESP32使用MicroPyhon开发,怎么获取485温湿度的值,温湿度计使用的鞋子是Modbus RTU
  • ¥50 苹果MGIE项目部署缺少emb权重
  • ¥15 采用ansys进行机翼在特定路径下的打孔过程中的受力分析
  • ¥15 单片机adb主机连接手机,usb调试密钥无法保存
  • ¥15 已知X和Y有以下关系,求X和Y的关系式
  • ¥15 net core 同时编辑怎么防止数据多保存了
  • ¥15 matlab做ba模型让其在ba和er规则下生长
  • ¥15 请问Quartus的Verilog代码怎么写?
  • ¥100 Mac 版foxmail 收邮件问题
  • ¥15 QWebEngineView