Я сделал небольшой POC, чтобы исследовать использование Jexl 3.5.0, как это: < /p>
private static JexlEngine jexl = new JexlBuilder()
.permissions(JexlPermissions.UNRESTRICTED).create();
public static void main(String[] args) {
JexlContext context = getJexlContext();
rule9(context);
}
private static void rule9(JexlContext context) {
JexlExpression expr = jexl.createExpression("1000 >= loan.property");
Object result = expr.evaluate(context);
System.out.println("R9: " + result);
}
...
private static JexlContext getJexlContext() {
JexlContext context = new MapContext();
var loan = new LoanBean();
loan.setProperty(100.1); //this is a Double property of the bean
context.set("loan", loan);
return context;
}
и кредитный зал - очень простой класс Java с 1 собственностью:
public class LoanBean {
private Double property;
public Double getProperty() {
return property;
}
public void setProperty(Double property) {
this.property = property;
}
}
< /code>
Но я получаю ошибку, как это: < /p>
Исключение в потоке "Main"
орг.apache.commons.jexl3.jexlexception $ propert /> jexl.main(jexl.java:21)
< /blockquote>
Если я использую карту вместо боба, она работает.module com.x13.jexl {
requires org.apache.commons.jexl3;
requires static lombok;
opens com.x13.jexl;
exports com.x13.jexl;
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... properties