Использование Drools на пристани - PullRequest
1 голос
/ 16 июня 2011

Я пытаюсь запустить веб-приложение, использующее Drools 5.2.0.M1.При запуске я получаю следующую трассировку стека:

java.lang.NoSuchMethodError: org.eclipse.jdt.internal.compiler.CompilationResult.getProblems()[Lorg/eclipse/jdt/core/compiler/CategorizedProblem;
at org.drools.commons.jci.compilers.EclipseJavaCompiler$3.acceptResult(EclipseJavaCompiler.java:336)
at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:335)
at org.drools.commons.jci.compilers.EclipseJavaCompiler.compile(EclipseJavaCompiler.java:366)
at org.drools.commons.jci.compilers.AbstractJavaCompiler.compile(AbstractJavaCompiler.java:51)
at org.drools.rule.builder.dialect.java.JavaDialect.compileAll(JavaDialect.java:366)
at org.drools.compiler.DialectCompiletimeRegistry.compileAll(DialectCompiletimeRegistry.java:55)

У меня в банке есть фляги:

    <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-compiler</artifactId>
        <version>5.2.0.M1</version>
    </dependency>
    <dependency>
        <groupId>org.eclipse.jdt.core.compiler</groupId>
        <artifactId>ecj</artifactId>
        <version>3.5.1</version>
    </dependency>

Почему он не может найти CompilationResult.getProblems ()?

Ответы [ 2 ]

2 голосов
/ 21 июня 2011

JDT не имеет обратной совместимости. Проверьте pom drools-compiler (именно той версии, которую вы используете), от которой зависит версия ecj, и используйте эту версию. Или вообще не объявляйте ecj, это транзитивная зависимость для drools-compiler.

PS: обновить до drools 5.2.0.CR1 (или окончательно, когда он выйдет)

0 голосов
/ 16 февраля 2012

У меня была похожая проблема. У меня было веб-приложение, использующее Jetty 6. Jetty 6, в котором явно была несовместимая версия JDT. После перехода на Jetty 7 проблема была решена.

...