Pregunta

Tengo problemas para compilar un proyecto de 4 babea. Estoy recibiendo errores en el archivo de reglas que dice

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

El compilador incremental no está funcionando debido a esto. ¿Cómo puedo solucionar los errores o ponerse Eclipse para ignorarlos?

¿Fue útil?

Solución 3

Hmmm, me limpió el proyecto y que se resolvió el problema.

Otros consejos

Este problema fue mencionado para una migración desde drools 3,06 a 4,0. 7 , por lo que la versión de Eclipse y babea está usando?

Esto podría estar relacionado con una ruta de clase tema :

  

Uso del depurador que se dio cuenta de que los Drools PackageBuilder trataron de cargar las clases de la

Thread.currentThread().getContextClassLoader();
  

Esta ClassLoader no contiene mis clases de agentes! Incluso el cargador de clases de sistema no contiene mis clases.

La solución fue:

  

En lugar de crear instancias PackageBuilder y RuleBase de fricción, uno tiene que crearlos con un PackageBuilderConfiguration y un tanto RuleBaseConfiguration con el classLoader actual 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());

Asegúrese de que el MyClassName o cualquier otra clase (s) que se utiliza en la norma están en un archivo JAR y el archivo JAR es en la ruta de clase.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top