簡體   English   中英

啟用 CDI 時,在 log4j2 的依賴項上遇到 UnsupportedClassVersionError

[英]Encounter UnsupportedClassVersionError on log4j2's dependencies when CDI is enabled

在啟用 CDI(beans.xml)之前,我對 log4j2 的依賴項(LMAX Disruptor)沒有任何 UnsupportedClassVersionError。 UnsupportedClassVersionError 告訴在 java9 而不是 java8 上運行,但這不是可選的。 請告知如何在java8上避免此錯誤。

網絡邏輯 12.2 log4j 2.11.2

<May 15, 2019 10:50:00,579 AM SGT> <Error> <Class Loaders> <BEA-2162500> <Class, module-info, was compiled with an incompatible version of Java. Ensure that all the classes needed by the application have been compiled with a compatible java version. java.lang.UnsupportedClassVersionError: module-info has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0
java.lang.UnsupportedClassVersionError: module-info has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at weblogic.utils.classloaders.GenericClassLoader.defineClassInternal(GenericClassLoader.java:1113)
    at weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:1046)
    Truncated. see log file for complete stacktrace
> 
<May 15, 2019 10:50:00,964 AM SGT> <Error> <Deployer> <BEA-149265> <Failure occurred in the execution of deployment request with ID "6752224278283" for task "4" on [partition-name: DOMAIN]. Error is: "weblogic.management.DeploymentException: CDI deployment failure:com/lmax/disruptor/ExceptionHandler"
weblogic.management.DeploymentException: CDI deployment failure:com/lmax/disruptor/ExceptionHandler
    at com.oracle.injection.integration.CDIAppDeploymentExtension.initCdi(CDIAppDeploymentExtension.java:95)
    at com.oracle.injection.integration.CDIAppDeploymentExtension.activate(CDIAppDeploymentExtension.java:43)
    at weblogic.application.internal.flow.AppDeploymentExtensionFlow.activate(AppDeploymentExtensionFlow.java:39)
    at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:752)
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)
    Truncated. see log file for complete stacktrace
Caused By: java.lang.ClassNotFoundException: com.lmax.disruptor.ExceptionHandler
    at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:1029)
    at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:990)
    at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:104)
    at weblogic.utils.classloaders.GenericClassLoader.doFindClass(GenericClassLoader.java:611)
    at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:543)
    Truncated. see log file for complete stacktrace

排除 log4j2 CDI 掃描如下:

bean.xml

<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
                           http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
    version="1.1" bean-discovery-mode="all">
    <scan>
        <!-- Prevent java.lang.NoClassDefFoundError: com/lmax/disruptor -->
        <exclude name="org.apache.logging.**" />
    </scan>
</beans>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM