在过去的 1 天里,我一直在尝试解决这个问题,但我无法解决。
我正在从游戏模型中触发流口水(规则)。它在我的本地环境中运行良好。
但是,当我在 Solaris 机器上的生产环境中部署相同的应用程序时,我收到以下错误
Error = Unable to resolve ObjectType 'Tracker' : [Rule name='PM APPROVAL']
Unable to resolve ObjectType 'User' : [Rule name='SEND MAILS']
Unable to resolve ObjectType 'Tracker' : [Rule name='SEND MAILS']
Error importing : 'models.Tracker'Error importing : 'notifications.TrackerMails'Error importing : 'models.User'Rule Compilation error : [Rule name='SEND MAILS']
drools/Rule_SEND_MAILS_0.java (2:23) : Only a type can be imported. notifications.TrackerMails resolves to a package
drools/Rule_SEND_MAILS_0.java (2:57) : Only a type can be imported. models.Tracker resolves to a package
drools/Rule_SEND_MAILS_0.java (2:95) : Only a type can be imported. models.User resolves to a package
drools/Rule_SEND_MAILS_0.java (8:422) : TrackerMails cannot be resolved
drools/Rule_SEND_MAILS_0.java (8:455) : $user cannot be resolved to a variable
drools/Rule_SEND_MAILS_0.java (8:461) : $tracker cannot be resolved to a variable
获得 drooolssession 的示例代码。我通过查看一些论坛添加了变量 classLoader,但我仍然没有解决这个问题。
StatefulKnowledgeSession dsession = null;
ClassLoader classLoader = TrackerUtil.class.getClassLoader();
KnowledgeBuilderConfiguration kBuilderConfiguration = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(null, classLoader);
KnowledgeBuilder builder = KnowledgeBuilderFactory.newKnowledgeBuilder(kBuilderConfiguration);
KnowledgeBaseConfiguration kbaseConfig = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(null, classLoader);
'''''
builder.add(ResourceFactory.newFileResource(new File(uri)),ResourceType.DRL);
''''
builder.add(ResourceFactory.newFileResource(new File(uri)),ResourceType.DRF);
.......
KnowledgeBase knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase(kbaseConfig);
knowledgeBase.addKnowledgePackages(builder.getKnowledgePackages());
dsession = knowledgeBase.newStatefulKnowledgeSession();
return dsession;
谁能帮我解决这个问题?