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?

Était-ce utile?

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 et RuleBase simples, il faut les créer avec un PackageBuilderConfiguration et un RuleBaseConfiguration aussi bien avec le classLoader 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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top