将JBoss BRMS(Drools)更改为使用Oracle 11g:无法生成包

将JBoss BRMS(Drools)更改为使用Oracle 11g:无法生成包,jboss,oracle11g,drools,guvnor,Jboss,Oracle11g,Drools,Guvnor,我正在使用Guvnor(JBoss BRMS)来管理部署在JBoss EAP 5.3中的drools规则引擎。我修改了Guvnor,将Oracle11g实例用于其RDBMS。我使用Guvnor生成了一个新的repository.xml,并将其放入JBoss目录的“bin”文件夹中。Guvnor和Drools运行良好,似乎很乐意连接到Oracle11g实例 然后我继续创建一个包并添加一个新规则。我添加的规则如下: dialect "mvel" rule "TimeToClearRule" whe

我正在使用Guvnor(JBoss BRMS)来管理部署在JBoss EAP 5.3中的drools规则引擎。我修改了Guvnor,将Oracle11g实例用于其RDBMS。我使用Guvnor生成了一个新的repository.xml,并将其放入JBoss目录的“bin”文件夹中。Guvnor和Drools运行良好,似乎很乐意连接到Oracle11g实例

然后我继续创建一个包并添加一个新规则。我添加的规则如下:

dialect "mvel"

rule "TimeToClearRule"
when
    #conditions
then
    #actions
end
dialect "mvel"

function double logNormalPdf(double mu, double sigma, double timeT) {
    return 0.0;
}

rule "TimeToClearRule"
when
    #conditions
then
    #actions
end
我验证了这个规则,然后重新构建了包。一切都很顺利

然而,我接着在规则上面添加了一个函数,目的是在规则中使用这个函数。规则更改为以下内容:

dialect "mvel"

rule "TimeToClearRule"
when
    #conditions
then
    #actions
end
dialect "mvel"

function double logNormalPdf(double mu, double sigma, double timeT) {
    return 0.0;
}

rule "TimeToClearRule"
when
    #conditions
then
    #actions
end
我验证了这个规则并重新生成了包。然而,随后抛出了一个错误。无法“保存项目”。在我的JBoss日志中,显示了以下错误(注意:不是完整的stacktrace,只是添加了我认为是根本原因的内容)

当Drools/Guvnor使用默认的DBMS解决方案时,该规则将进行验证并构建良好。由于将DBMS移动到Oracle 11g,因此无法再验证规则和构建包

我不知道为什么会这样。任何提供的帮助都将不胜感激

谢谢

更新对,我发现了我认为存在的问题。在上面的例子中,我遗漏了一些我发现是错误的原因。我正在使用'Math'函数(java.lang.Math),这似乎导致了上面显示的错误。我创建的规则如下所示:

import java.lang.Math

dialect "mvel"

function double logNormalPdf(double mu, double sigma, double timeT) {
    return Math.log(2);
}

rule "TimeToClearRule"
when
    #conditions
then
    #actions
end
drools/guvnor能处理数学函数吗?如果没有,我该如何使用它


谢谢

您的数据库配置似乎有问题,guvnor/jackrabbit可能无法在oracle存储库中创建所有必要的表。尝试与新的oracle架构建立新的db连接。

您是否尝试过导出repository.xml并导入它,而不是替换bin文件夹中的原始repository.xml?嗨,jBug,我找不到导入存储库的选项,只有export。嗨,alikox,我将尝试一下,看看它是否解决了问题。一件事,我确实创建了一个新的模式,它似乎已经创建了所有的表。异常中引用的表存在,出于某种原因,它只是尝试将null插入其中。我尝试了您建议的alikox,但没有成功。我很想回到使用Guvnor提供的默认JackRabbit解决方案box@ScreamingMage很遗憾听到这个消息。我提出这种可能性的原因是,我在使用Oracle10g存储库时遇到了类似的错误,Guvnor由于区域设置的差异无法创建其所有表。