如何从DMN模型Drools商业中心调用静态Java方法

问题描述

我正在使用Business Central版本7.40.0。从Drools Business Central DMN项目/模型调用静态Java方法std时,出现以下错误

DMN: Error compiling Java function 'stdev' on node 'stdev': Error resolving external function as defined by: function(val) external { java: { class: ""com.sample.StandardDeviation"",method signature: ""std(java.lang.Number)"" }}...
Error compiling the referenced FEEL expression

我有

  1. 使用静态Java方法创建的Maven jar
package com.sample;

import java.math.BigDecimal;
    
public class StandardDeviation {
    
    public static BigDecimal std(Number val) {  
        return new BigDecimal(val.doubleValue() * 2);
    }
}
  1. Imported Jar as Artifacts to Drools Business Central

  2. Added Dependency to DMN project

  3. 在我的DMN模型中,我正在'stdev'BKM(业务知识模型)元素内调用静态Java方法BKM with class and method signature

    • 类别:"com.sample.StandardDeviation"
    • 方法签名:"std(java.lang.Number)"
  4. 保存BKM / DMN或构建模型会出现上述错误

可能是什么问题? 我做错了什么吗? 如何在Drools Business Central中检查日志?

解决方法

我们知道此问题,因为它是在DROOLS-5577上报告的

存在解决方法,如在单独的论坛中讨论的以及JIRA问题中所详述,JIRA问题后来confirmed如下:

  1. 在使用编辑器保存DMN模型时忽略此验证错误(红色弹出窗口)
  2. 继续照常部署KJAR BC项目

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...