Прежде всего я имею в виду этот вопрос (LINK), который не помог мне, потому что тогда версии фреймворков были ниже, поэтому я начинаю новый вопрос.Исключение Drools в новой версии Grails
Итак, я использую рамку Grails 2.4.3 и пытаюсь использовать внутри нее механизм правил Drools. Версия Java 1.0.8_20, а версия версии 2.3.9. Зависимости в BuildConfig являются:
runtime 'org.drools:drools-core:5.5.0.Final'
runtime 'org.drools:knowledge-api:5.5.0.Final'
В этой строке кода:
KnowledgeBuilder knowledgeBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder()
Я получаю это исключение:
Error initializing the application: com/sun/tools/xjc/Options
Caused by ClassNotFoundException: com.sun.tools.xjc.Options
Я попытался изменить версии Drools-ядра/knowledge-api до более высокого (до 6.0.1.Final), но продолжают получать ту же ошибку. Я также попытался импортировать эти странные зависимости xjc, как упоминалось в сообщении, что я имел в виду в начале, но без успеха.
Кто-нибудь знает, в чем проблема?
Btw полный стек след:
| Error 2014-12-19 18:04:49,851 [localhost-startStop-1] ERROR context.GrailsContextLoaderListener - Error initializing Grails: com/sun/tools/xjc/Options
Message: com/sun/tools/xjc/Options
Line | Method
->> 2688 | privateGetDeclaredMethods in java.lang.Class
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 1962 | getDeclaredMethods in ''
| 46 | getLocked . . . . . . . . . . . in org.codehaus.groovy.util.LazyReference
| 33 | get in ''
| 46 | doCall . . . . . . . . . . . . . in account.manager.rule.knowledge.Knowledge$_initialize_closure1
| 43 | initialize in account.manager.rule.knowledge.Knowledge
| 39 | $tt__initialize . . . . . . . . in account.manager.RuleSyncService
| 24 | doCall in BootStrap$_closure1
| 327 | evaluateEnvironmentSpecificBlock in grails.util.Environment
| 320 | executeForEnvironment in ''
| 296 | executeForCurrentEnvironment . . in ''
| 266 | run in java.util.concurrent.FutureTask
| 1142 | runWorker . . . . . . . . . . . in java.util.concurrent.ThreadPoolExecutor
| 617 | run in java.util.concurrent.ThreadPoolExecutor$Worker
^ 745 | run . . . . . . . . . . . . . . in java.lang.Thread
Caused by ClassNotFoundException: com.sun.tools.xjc.Options
Возможна ли полная справка? – laune
Возможно, это не очень хорошая идея, чтобы перейти от Drools 5.5 до 6.x, не убедившись, что все совместимо. В этой другой ссылке вы говорите, что используете 6.1.0-Final, но здесь вы ссылаетесь на 5.5.0.Final runtimes. Обязательно определите фактическую версию с помощью своего stackdump. – laune
Где эта строка «KnowledgeBuilder knowledgeBuilder = ...»? – laune