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

问题描述

我将我的应用程序部署在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中它可以正常工作。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)