Pergunta

Estou tendo problemas para compilar um projeto Drools 4. Estou recebendo erros no arquivo de regras dizendo

Only a type can be imported. <<MyClassName>> resolves to a package 

O compilador incremental não está funcionando por causa disso. Como corrigi os erros ou o Eclipse os ignore?

Foi útil?

Solução 3

Hmmm, limpei o projeto e isso resolveu o problema.

Outras dicas

Esta questão foi mencionada para uma migração de babar 3,06 a 4.0.7, então qual versão do eclipse e baba você está usando?

Isso pode estar relacionado a um problema de patrimão de classe:

Usando o depurador, percebi que as babados PackageBuilder tentou carregar as classes do

Thread.currentThread().getContextClassLoader();

este ClassLoader Não contém minhas aulas de agente! Mesmo o carregador de classe do sistema não contém minhas classes.

A solução foi:

Em vez de criar claro PackageBuilder e RuleBase instâncias, é preciso criá -las com um PackageBuilderConfiguration e a RuleBaseConfiguration ambos com a corrente classLoader configurado:

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());

Certifique -se de que o MyClassName ou qualquer outra classe (s) que você use da regra esteja em um arquivo JAR e o arquivo JAR esteja no ClassPath.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top