java.lang.RuntimeException:错误的类格式 DROOL 与 jdk 11 和 Wildfly 15 的兼容性

问题描述 投票:0回答:1

我的应用程序部署在 Wildfly 15 上,并且依赖于版本 5.1.1。 升级到 JDK 11 后,我面临以下问题。

    Caused by: java.lang.RuntimeException: wrong class format
    at test.ear//org.drools.commons.jci.compilers.EclipseJavaCompiler$2.findType(EclipseJavaCompiler.java:260)
    at test.ear//org.drools.commons.jci.compilers.EclipseJavaCompiler$2.findType(EclipseJavaCompiler.java:204)
    at test.ear//org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:102)
    at test.ear//org.eclipse.jdt.internal.compiler.lookup.UnresolvedReferenceBinding.resolve(UnresolvedReferenceBinding.java:49)
    at test.ear//org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType(BinaryTypeBinding.java:122)
    at test.ear//org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.resolve(ParameterizedTypeBinding.java:851)
    at test.ear//org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType(BinaryTypeBinding.java:100)
    at test.ear//org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveTypesFor(BinaryTypeBinding.java:1016)
    at test.ear//org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.getExactMethod(BinaryTypeBinding.java:771)
    at test.ear//org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.getExactMethod(SourceTypeBinding.java:840)
    at test.ear//org.eclipse.jdt.internal.compiler.lookup.Scope.findExactMethod(Scope.java:893)
    at test.ear//org.eclipse.jdt.internal.compiler.lookup.Scope.getImplicitMethod(Scope.java:1952)
    at test.ear//org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:400)
    at test.ear//org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:314)
    at test.ear//org.eclipse.jdt.internal.compiler.ast.MessageSend.resolveType(MessageSend.java:314)
    at test.ear//org.eclipse.jdt.internal.compiler.ast.LocalDeclaration.resolve(LocalDeclaration.java:186)
    at test.ear//org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolveStatements(AbstractMethodDeclaration.java:447)
    at test.ear//org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.resolveStatements(MethodDeclaration.java:189)
    at test.ear//org.eclipse.jdt.internal.compiler.ast.AbstractMethodDeclaration.resolve(AbstractMethodDeclaration.java:406)
    at test.ear//org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1131)
    at test.ear//org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1219)
    at test.ear//org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:528)
    at test.ear//org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:759)
    at test.ear//org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:464)
    at test.ear//org.drools.commons.jci.compilers.EclipseJavaCompiler.compile(EclipseJavaCompiler.java:351)
    at test.ear//org.drools.commons.jci.compilers.AbstractJavaCompiler.compile(AbstractJavaCompiler.java:51)
    at test.ear//org.drools.rule.builder.dialect.java.JavaDialect.compileAll(JavaDialect.java:389)
    at test.ear//org.drools.compiler.DialectCompiletimeRegistry.compileAll(DialectCompiletimeRegistry.java:56)
    at test.ear//org.drools.compiler.PackageRegistry.compileAll(PackageRegistry.java:74)
    at test.ear//org.drools.compiler.PackageBuilder.compileAll(PackageBuilder.java:677)
    at test.ear//org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:640)
    at test.ear//org.drools.compiler.PackageBuilder.addPackageFromXml(PackageBuilder.java:307)
    at test.ear//org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:467)
    at test.ear//org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:28)
    at test.ear.integration-engine.jar//com.test.generator.xdrl.DroolsXdrlGenerator.xmlToPackage(DroolsXdrlGenerator.java:334)
    at test.ear.integration-engine.jar//com.test.generator.xdrl.DroolsXdrlGenerator.buildRule(DroolsXdrlGenerator.java:277)
    at test.ear.integration-engine.jar//com.test.generator.xdrl.DroolsXdrlGenerator.generate(DroolsXdrlGenerator.java:210)
    at test.ear.integration-engine.jar//com.test.generator.xdrl.DroolsXdrlGenerator.generate(DroolsXdrlGenerator.java:121)
    ... 67 more
Caused by: org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
    at test.ear//org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.<init>(ClassFileReader.java:372)
    at test.ear//org.drools.commons.jci.compilers.EclipseJavaCompiler$2.findType(EclipseJavaCompiler.java:254)
    ... 104 more

我不知道如何解决这个问题?难道我需要升级drool的版本吗?

而它在 jdk 8 中运行良好。

java-8 wildfly drools java-11
1个回答
0
投票

视频中提到的解决方案。 (您应该使用与 JDK11 或 JDK17 兼容的最新版本的 Drool 插件),否则 5.3.30 兼容版本是:JDK1.8

https://youtu.be/NleuuAO7jQU

© www.soinside.com 2019 - 2024. All rights reserved.