我一直在試圖解決過去1天的問題,但我無法解決。只能導入一個類型。 models.XYZ解析爲包
Iam從遊戲模型中觸發流水(規則)。它在我的本地環境中工作得非常好。
但是當IAM在Solaris箱IAM部署在生產同一個應用程序收到以下錯誤
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.I都看在一些論壇但我仍然添加變量的類加載器尚未解決問題。
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;
任何人都可以請幫助我如何解決這個問題?
甚至嘗試從Classloader加載類,它能夠正確加載類,但仍然能夠解決豆 –
你嘗試在kbase和ksession中使用相同的類加載器 – salaboy
是的,我仍然無法解決。 –