Вопрос

У меня возникли проблемы с компиляцией проекта 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 и a RuleBaseConfiguration как с текущим 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top