Problemi edificio Drools 4 progetto in Eclipse
Domanda
Ho problemi compilazione di un progetto sbava 4. Sto ottenendo gli errori nel file di regole dicendo
Only a type can be imported. <<MyClassName>> resolves to a package
Il compilatore incrementale non funziona a causa di questo. Come posso risolvere gli errori o ottenere eclissi di ignorarli?
Soluzione 3
Hmmm, ho pulito il progetto e che ha risolto il problema.
Altri suggerimenti
Il problema è stato menzionato per una migrazione da sbava 3,06-4,0. 7 , in modo che versione di Eclipse e sbava stai usando?
Questo potrebbe essere correlato a un classpath problema :
Utilizzo del debugger ho capito che il
PackageBuilder
Drools cercato di caricare le classi dal
Thread.currentThread().getContextClassLoader();
Questa
ClassLoader
non contiene le mie classi agente! Anche il caricatore di classe sistema non contiene le mie classi.
La soluzione era:
Invece di creare istanze
PackageBuilder
eRuleBase
pianura, si deve creare loro con unPackageBuilderConfiguration
eRuleBaseConfiguration
sia con la correnteclassLoader
configurato:
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());
Assicurarsi che il MyClassName o di qualsiasi altra classe (es) che si utilizza dalla regola sono in un file jar e il file jar è nel classpath.