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?

È stato utile?

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 e RuleBase pianura, si deve creare loro con un PackageBuilderConfiguration e RuleBaseConfiguration sia con la corrente classLoader 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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top