Слюни: версия 7.15.0. Финал
В настоящее время я использую два подхода к отладке таблиц решений:
Фаза компиляции
В моем случае я должен сериализовать таблицы решений, чтобы сэкономить время - обычно они конвертируются в .drl
файлы, которые затем оцениваются. Я пропускаю строку и собираю их напрямую, получаю базы знаний и сериализую их. Мое приложение использует эти сериализованные базы знаний.
Иногда мои таблицы решений не компилируются.
Я отлаживаю их, генерируя файл .drl
. Ошибки, которые генерирует синтаксический анализатор drl, в основном можно идентифицировать из сгенерированного файла .drl
.
Фрагмент кода для преобразования таблицы решений drools в соответствующий файл drl
Фаза времени исполнения
Иногда, даже если мои таблицы решений успешно скомпилированы, у них возникают некоторые проблемы во время выполнения - некоторые правила не запускаются, как ожидалось. Для отладки я нашел полезным использование AgendaEventListener
. Drools предоставляет две полезные реализации прослушивателя событий повестки дня для целей отладки: DebugAgendaEventListener
и DebugRuleRuntimeEventListener
.
Существует два варианта DebugAgendaEventListener
и DebugRuleRuntimeEventListener
. Те из пакета org.drools.core.event
используют экземпляр Logger
для регистрации событий, где как из пакета org.kie.api.event.rule
используют stderr
. Тем не менее, оба имеют одинаковую функциональность.
Более того, модель событий Kie может быть использована для получения дополнительной информации и пользовательской отладки. Более подробную информацию можно найти в слюнях 7.15.0. Окончательные документы .
Дополнительные ссылки и ссылки:
https://javadude.wordpress.com/2012/03/06/debugging-drools-rules/