Проблемы при создании проекта Drools 4 в Eclipse
Вопрос
У меня возникли проблемы с компиляцией проекта drools 4.Я получаю ошибки в файле правил, в которых говорится
Only a type can be imported. <<MyClassName>> resolves to a package
Из-за этого инкрементный компилятор не работает.Как мне исправить ошибки или заставить eclipse игнорировать их?
Решение 3
Хммм, я почистил проект, и это решило проблему.
Другие советы
Эта проблема была упомянута при миграции из пускает слюни с 3.06 по 4.0.7, итак, какую версию eclipse и drools вы используете?
Это может быть связано с проблема с путем к классу:
Используя отладчик, я понял, что Слюни
PackageBuilder
попытался загрузить классы из
Thread.currentThread().getContextClassLoader();
Это
ClassLoader
не содержит моих классов агентов!Даже загрузчик системных классов не содержит моих классов.
Решение было таким:
Вместо того, чтобы создавать простые
PackageBuilder
иRuleBase
экземпляры, нужно создавать их с помощьюPackageBuilderConfiguration
и aRuleBaseConfiguration
как с текущимclassLoader
настроенный:
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());
Убедитесь, что MyClassName или любые другие классы, которые вы используете из правила, находятся в файле jar, а файл jar - в classpath.