bâtiment Problèmes Drools 4 projet Eclipse
Question
Je ne parviens pas à la compilation d'un projet Drools 4. Je reçois des erreurs dans le fichier de règles en disant
Only a type can be imported. <<MyClassName>> resolves to a package
Le compilateur incrémental ne fonctionne pas à cause de cela. Comment puis-je corriger les erreurs ou obtenir éclipse de les ignorer?
La solution 3
Hmmm, je nettoyais le projet et qui a résolu le problème.
Autres conseils
Cette question a été mentionné pour une migration de Drools 3,06 à 4,0. 7 , alors quelle version d'Eclipse et Drools utilisez-vous?
Cela peut être lié à un classpath question :
En utilisant le débogueur j'ai réalisé que le
PackageBuilder
Drools a essayé de charger les classes de la
Thread.currentThread().getContextClassLoader();
Cette
ClassLoader
ne contient pas mes cours d'agent! Même la classe système chargeur ne contient pas mes classes.
La solution est:
Au lieu de créer des instances de
PackageBuilder
etRuleBase
simples, il faut les créer avec unPackageBuilderConfiguration
et unRuleBaseConfiguration
aussi bien avec leclassLoader
courant configuré:
ClassLoader classLoader = this.getClass().getClassLoader();
PackageBuilderConfiguration configuration = new PackageBuilderConfiguration();
configuration.setClassLoader(classLoader);
PackageBuilder builder = new PackageBuilder(configuration);
builder.addPackageFromDrl(source);
RuleBaseConfiguration ruleBaseConfiguration = new RuleBaseConfiguration();
ruleBaseConfiguration.setClassLoader(classLoader);
ruleBase = RuleBaseFactory.newRuleBase(ruleBaseConfiguration);
ruleBase.addPackage(builder.getPackage());
Assurez-vous que le MyClassName ou toute autre catégorie (s) que vous utilisez de la règle sont dans un fichier jar et le fichier jar est en classpath.