2016-12-02 94 views
-1

我在执行一些drools规则时遇到了一些问题。当通过intelijj执行javafx应用程序时,代码运行正常,但通过java webStart(jnlp)运行时失败。 错误是:Drools规则“XXX”访问被拒绝的异常执行结果

异常在defaultpkg执行的规则“人出生日期或锡FATCA”后果:java.security.AccessControlException:访问被拒绝(“java.lang.RuntimePermission”“accessClassInPackage.sun.reflect.generics .reflectiveObjects“) 在org.drools.core.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39) 在org.drools.core.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1083)

.....

错误的规则是随机的,它并不总是t他同样的规则失败了。 在这种情况下,规则是:

rule "Person DOB or TIN FATCA" 
when 
    tr : TaxReturn(taxAuthority != Country.ZA) 
    fi : FinancialInstitution () from tr.financialInstitution 
    ar : AccountReport (accountHolderType == AccountHolderType.Individual) from fi.accountReport 
    ah : AccountHolder () from ar.accountHolder 
    pe : Person ((birthDate == null || birthDate.toString().isEmpty()) && taxIdentification.isEmpty()) from ah.individual 
then 
    Message msg = new Message (ar.getAccountHolderType().toString(),"E","EIAR001",pe.getIndex(),"birthDate", pe.getIndex()); 
    trData.addMessage(msg.getIndex() +"_"+ msg.getField(), msg); 
    msg = new Message (ar.getAccountHolderType().toString(),"E","EIAR012",pe.getIndex(),"idNumber", pe.getIndex()); 
    trData.addMessage(msg.getIndex() +"_"+ msg.getField(), msg); 
    msg = new Message (ar.getAccountHolderType().toString(),"E","EIAR012",pe.getIndex(),"idType", pe.getIndex()); 
    trData.addMessage(msg.getIndex() +"_"+ msg.getField(), msg); 
    msg = new Message (ar.getAccountHolderType().toString(),"E","EIAR012",pe.getIndex(),"idCountry", pe.getIndex()); 
    trData.addMessage(msg.getIndex() +"_"+ msg.getField(), msg); 
end 

此外,错误只发生在某些条件下,用充满不同的对象 任何帮助表示赞赏。

回答

0

我发现了问题所在:

在我们的消息类,我们有两种方法,分别抛出新NotImplementedException。 这是不支持的,所以我们不得不改变异常抛出UnsupportedOperationException。 希望这可以帮助任何有类似问题的人。

相关问题