Исключение ExceptionInInitializerError при выполнении встроенного исполняемого файла jar - PullRequest
1 голос
/ 21 марта 2020

Я попытался воссоздать проблему балансировки облака в простом Java приложении командной строки приложения. Я не использовал никакого менеджера зависимостей, я просто импортировал все библиотеки из дистрибутива Optaplanner, которые можно скачать на сайте. На IDE все работает просто отлично. Проблемы возникают, когда я выполняю встроенный исполняемый файл JAR, я всегда получаю это исключение:

Exception in thread "main" java.lang.ExceptionInInitializerError
    at org.drools.core.rule.constraint.MvelConstraint.jitEvaluator(MvelConstraint.java:304)
    at org.drools.core.rule.constraint.MvelConstraint.evaluate(MvelConstraint.java:271)
    at org.drools.core.rule.constraint.MvelConstraint.isAllowedCachedLeft(MvelConstraint.java:237)
    at org.drools.core.common.SingleBetaConstraints.isAllowedCachedLeft(SingleBetaConstraints.java:135)
    at org.drools.core.phreak.PhreakAccumulateNode.evaluateResultConstraints(PhreakAccumulateNode.java:653)
    at org.drools.core.phreak.PhreakAccumulateNode.doNode(PhreakAccumulateNode.java:106)
    at org.drools.core.phreak.RuleNetworkEvaluator.switchOnDoBetaNode(RuleNetworkEvaluator.java:581)
    at org.drools.core.phreak.RuleNetworkEvaluator.evalBetaNode(RuleNetworkEvaluator.java:552)
    at org.drools.core.phreak.RuleNetworkEvaluator.evalNode(RuleNetworkEvaluator.java:379)
    at org.drools.core.phreak.RuleNetworkEvaluator.innerEval(RuleNetworkEvaluator.java:339)
    at org.drools.core.phreak.RuleNetworkEvaluator.outerEval(RuleNetworkEvaluator.java:175)
    at org.drools.core.phreak.RuleNetworkEvaluator.evaluateNetwork(RuleNetworkEvaluator.java:133)
    at org.drools.core.phreak.RuleExecutor.reEvaluateNetwork(RuleExecutor.java:213)
    at org.drools.core.phreak.RuleExecutor.evaluateNetworkAndFire(RuleExecutor.java:88)
    at org.drools.core.concurrent.AbstractRuleEvaluator.internalEvaluateAndFire(AbstractRuleEvaluator.java:33)
    at org.drools.core.concurrent.SequentialRuleEvaluator.evaluateAndFire(SequentialRuleEvaluator.java:43)
    at org.drools.core.common.DefaultAgenda.fireLoop(DefaultAgenda.java:1101)
    at org.drools.core.common.DefaultAgenda.internalFireAllRules(DefaultAgenda.java:1048)
    at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1040)
    at org.drools.core.impl.StatefulKnowledgeSessionImpl.internalFireAllRules(StatefulKnowledgeSessionImpl.java:1337)
    at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1328)
    at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1312)
    at org.optaplanner.core.impl.score.director.drools.DroolsScoreDirector.calculateScore(DroolsScoreDirector.java:102)
    at org.optaplanner.core.impl.score.director.AbstractScoreDirector.doAndProcessMove(AbstractScoreDirector.java:189)
    at org.optaplanner.core.impl.localsearch.decider.LocalSearchDecider.doMove(LocalSearchDecider.java:132)
    at org.optaplanner.core.impl.localsearch.decider.LocalSearchDecider.decideNextStep(LocalSearchDecider.java:116)
    at org.optaplanner.core.impl.localsearch.DefaultLocalSearchPhase.solve(DefaultLocalSearchPhase.java:70)
    at org.optaplanner.core.impl.solver.AbstractSolver.runPhases(AbstractSolver.java:98)
    at org.optaplanner.core.impl.solver.DefaultSolver.solve(DefaultSolver.java:189)
    at se.digitaltolk.sample.Main.main(Main.java:21)
Caused by: java.lang.NullPointerException
    at org.drools.core.rule.constraint.MvelConstraint$ExecutorHolder.<clinit>(MvelConstraint.java:330)

Однако это исключение происходит только тогда, когда я использую решатель Drools, а не когда я использую Java решатель.

...