我正在尝试使用Drools进行规则验证,并且我在Java 8中遇到错误。根据现有的建议,我确实将eclipse编译器升级到4.4并查看我的maven依赖项中生成的相应ecj-4.4.jar 。但是,我仍然得到错误的类格式异常:
引起:org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException。
我尝试使用不同版本的drools,包括6.4.0.Final,5.0.1 - 但问题仍然存在。
当我尝试使用Stateless kie会话而不是有状态的kie会话时,我收到此错误。
有什么想法吗?
最诚挚的问候, 仪轨
答案 0 :(得分:0)
如果您使用的是drools编译器依赖项,请在pom.xml
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-compiler</artifactId>
<version>${drools.version}</version>
<exclusions>
<exclusion>
<groupId>org.eclipse.jdt.core.compiler</groupId>
<artifactId>ecj</artifactId>
</exclusion>
</exclusions>
</dependency>
如果你正在使用drools-spring依赖:
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-spring</artifactId>
<version>${drools-spring-version}</version>
<exclusions>
<exclusion>
<groupId>org.eclipse.jdt.core.compiler</groupId>
<artifactId>ecj</artifactId>
</exclusion>
</exclusions>
</dependency>
您遇到的错误可能是因为有多个版本的ecj jar而Java正在选错。