Проблемы построения проекта Drools 4 в Eclipse

2

У меня возникли проблемы с составлением проекта drools 4. Я получаю ошибки в файле правил, говоря

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

Инкрементный компилятор не работает из-за этого. Как исправить ошибки или заставить затмение игнорировать их?

Теги:
drools
building

3 ответа

-2
Лучший ответ

Хммм, я очистил проект и решил проблему.

  • 2
    Это немного придурок, чтобы принять собственный ответ от своей ошибки: /
2

Эта проблема была упомянута для перехода из слюни от 3.06 до 4.0.7, поэтому какую версию eclipse и drools вы используете?

Это может быть связано с проблемой classpath:

Используя отладчик, я понял, что Drools PackageBuilder попытался загрузить классы из

Thread.currentThread().getContextClassLoader();

Этот ClassLoader не содержит мои классы агентов! Даже загрузчик системного класса не содержит мои классы.

Решение:

Вместо создания простых экземпляров PackageBuilder и RuleBase необходимо создать их с помощью PackageBuilderConfiguration и 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());
  • 0
    @ Спасибо за исправление этой опечатки.
  • 0
    Привет, спасибо за ответ. Мой коллега по работе только что сообщил мне, что мы не мигрировали и что мы всегда были на Drools версии 4. Извините, я должен был дать это понять, чтобы вы не печатали это.
1

Убедитесь, что MyClassName или любые другие классы (классы), которые вы используете из правила, находятся в файле jar, а файл jar находится в пути к классам.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню