如何解决错误“java.lang.NoClassDefFoundError: Could not initialize class com.google.inject.internal.cglib.core.$MethodWrapper”。

9
感谢您的关注,这是我的第一篇文章,请对我宽容些。我的问题有点奇怪,我已经将我的Spring Boot应用程序部署到Azure应用服务上数月了,但今天早上当我再次尝试部署时,我遇到了错误[ERROR] Error executing Maven. [ERROR] java.lang.IllegalStateException: Unable to load cache item [ERROR] Caused by: Unable to load cache item [ERROR] Caused by: Could not initialize class com.google.inject.internal.cglib.core.$MethodWrapper 最让人惊讶的是,所有其他Maven命令都会产生这个错误。非常感谢您的帮助。
mvn -X命令的返回结果如下:
Apache Maven 3.6.0
Maven home: /usr/share/maven
Java version: 17.0.2, vendor: Microsoft, runtime: /usr/lib/jvm/msopenjdk-17-amd64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.4.0-1077-azure", arch: "amd64", family: "unix"
[ERROR] Error executing Maven.
com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalStateException: Unable to load cache item
    at com.google.common.cache.LocalCache$Segment.get (LocalCache.java:2205)
    at com.google.common.cache.LocalCache.get (LocalCache.java:3951)
    at com.google.common.cache.LocalCache.getOrLoad (LocalCache.java:3955)
    at com.google.common.cache.LocalCache$LocalLoadingCache.get (LocalCache.java:4870)
    at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked (LocalCache.java:4876)
    at com.google.inject.internal.FailableCache.get (FailableCache.java:51)
    at com.google.inject.internal.ConstructorInjectorStore.get (ConstructorInjectorStore.java:48)
    at com.google.inject.internal.ConstructorBindingImpl.initialize (ConstructorBindingImpl.java:155)
    at com.google.inject.internal.InjectorImpl.initializeBinding (InjectorImpl.java:581)
    at com.google.inject.internal.AbstractBindingProcessor$Processor$1.run (AbstractBindingProcessor.java:176)
    at com.google.inject.internal.ProcessedBindingData.initializeBindings (ProcessedBindingData.java:49)
    at com.google.inject.internal.InternalInjectorCreator.initializeStatically (InternalInjectorCreator.java:122)
    at com.google.inject.internal.InternalInjectorCreator.build (InternalInjectorCreator.java:106)
    at com.google.inject.Guice.createInjector (Guice.java:87)
    at com.google.inject.Guice.createInjector (Guice.java:69)
    at com.google.inject.Guice.createInjector (Guice.java:59)
    at org.codehaus.plexus.DefaultPlexusContainer.addPlexusInjector (DefaultPlexusContainer.java:481)
    at org.codehaus.plexus.DefaultPlexusContainer.<init> (DefaultPlexusContainer.java:206)
    at org.apache.maven.cli.MavenCli.container (MavenCli.java:635)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:281)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: java.lang.IllegalStateException: Unable to load cache item
    at com.google.inject.internal.cglib.core.internal.$LoadingCache.createEntry (LoadingCache.java:79)
    at com.google.inject.internal.cglib.core.internal.$LoadingCache.get (LoadingCache.java:34)
    at com.google.inject.internal.cglib.core.$AbstractClassGenerator$ClassLoaderData.get (AbstractClassGenerator.java:119)
    at com.google.inject.internal.cglib.core.$AbstractClassGenerator.create (AbstractClassGenerator.java:294)
    at com.google.inject.internal.cglib.reflect.$FastClass$Generator.create (FastClass.java:65)
    at com.google.inject.internal.BytecodeGen.newFastClassForMember (BytecodeGen.java:258)
    at com.google.inject.internal.BytecodeGen.newFastClassForMember (BytecodeGen.java:207)
    at com.google.inject.internal.DefaultConstructionProxyFactory.create (DefaultConstructionProxyFactory.java:49)
    at com.google.inject.internal.ProxyFactory.create (ProxyFactory.java:156)
    at com.google.inject.internal.ConstructorInjectorStore.createConstructor (ConstructorInjectorStore.java:92)
    at com.google.inject.internal.ConstructorInjectorStore.access$000 (ConstructorInjectorStore.java:29)
    at com.google.inject.internal.ConstructorInjectorStore$1.create (ConstructorInjectorStore.java:37)
    at com.google.inject.internal.ConstructorInjectorStore$1.create (ConstructorInjectorStore.java:33)
    at com.google.inject.internal.FailableCache$1.load (FailableCache.java:40)
    at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture (LocalCache.java:3540)
    at com.google.common.cache.LocalCache$Segment.loadSync (LocalCache.java:2321)
    at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad (LocalCache.java:2284)
    at com.google.common.cache.LocalCache$Segment.get (LocalCache.java:2199)
    at com.google.common.cache.LocalCache.get (LocalCache.java:3951)
    at com.google.common.cache.LocalCache.getOrLoad (LocalCache.java:3955)
    at com.google.common.cache.LocalCache$LocalLoadingCache.get (LocalCache.java:4870)
    at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked (LocalCache.java:4876)
    at com.google.inject.internal.FailableCache.get (FailableCache.java:51)
    at com.google.inject.internal.ConstructorInjectorStore.get (ConstructorInjectorStore.java:48)
    at com.google.inject.internal.ConstructorBindingImpl.initialize (ConstructorBindingImpl.java:155)
    at com.google.inject.internal.InjectorImpl.initializeBinding (InjectorImpl.java:581)
    at com.google.inject.internal.AbstractBindingProcessor$Processor$1.run (AbstractBindingProcessor.java:176)
    at com.google.inject.internal.ProcessedBindingData.initializeBindings (ProcessedBindingData.java:49)
    at com.google.inject.internal.InternalInjectorCreator.initializeStatically (InternalInjectorCreator.java:122)
    at com.google.inject.internal.InternalInjectorCreator.build (InternalInjectorCreator.java:106)
    at com.google.inject.Guice.createInjector (Guice.java:87)
    at com.google.inject.Guice.createInjector (Guice.java:69)
    at com.google.inject.Guice.createInjector (Guice.java:59)
    at org.codehaus.plexus.DefaultPlexusContainer.addPlexusInjector (DefaultPlexusContainer.java:481)
    at org.codehaus.plexus.DefaultPlexusContainer.<init> (DefaultPlexusContainer.java:206)
    at org.apache.maven.cli.MavenCli.container (MavenCli.java:635)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:281)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.google.inject.internal.cglib.core.$MethodWrapper
    at com.google.inject.internal.cglib.core.$DuplicatesPredicate.evaluate (DuplicatesPredicate.java:104)
    at com.google.inject.internal.cglib.core.$CollectionUtils.filter (CollectionUtils.java:52)
    at com.google.inject.internal.cglib.reflect.$FastClassEmitter.<init> (FastClassEmitter.java:69)
    at com.google.inject.internal.cglib.reflect.$FastClass$Generator.generateClass (FastClass.java:77)
    at com.google.inject.internal.cglib.core.$DefaultGeneratorStrategy.generate (DefaultGeneratorStrategy.java:25)
    at com.google.inject.internal.cglib.core.$AbstractClassGenerator.generate (AbstractClassGenerator.java:332)
    at com.google.inject.internal.cglib.core.$AbstractClassGenerator$ClassLoaderData$3.apply (AbstractClassGenerator.java:96)
    at com.google.inject.internal.cglib.core.$AbstractClassGenerator$ClassLoaderData$3.apply (AbstractClassGenerator.java:94)
    at com.google.inject.internal.cglib.core.internal.$LoadingCache$2.call (LoadingCache.java:54)
    at java.util.concurrent.FutureTask.run (FutureTask.java:264)
    at com.google.inject.internal.cglib.core.internal.$LoadingCache.createEntry (LoadingCache.java:61)
    at com.google.inject.internal.cglib.core.internal.$LoadingCache.get (LoadingCache.java:34)
    at com.google.inject.internal.cglib.core.$AbstractClassGenerator$ClassLoaderData.get (AbstractClassGenerator.java:119)
    at com.google.inject.internal.cglib.core.$AbstractClassGenerator.create (AbstractClassGenerator.java:294)
    at com.google.inject.internal.cglib.reflect.$FastClass$Generator.create (FastClass.java:65)
    at com.google.inject.internal.BytecodeGen.newFastClassForMember (BytecodeGen.java:258)
    at com.google.inject.internal.BytecodeGen.newFastClassForMember (BytecodeGen.java:207)
    at com.google.inject.internal.DefaultConstructionProxyFactory.create (DefaultConstructionProxyFactory.java:49)
    at com.google.inject.internal.ProxyFactory.create (ProxyFactory.java:156)
    at com.google.inject.internal.ConstructorInjectorStore.createConstructor (ConstructorInjectorStore.java:92)
    at com.google.inject.internal.ConstructorInjectorStore.access$000 (ConstructorInjectorStore.java:29)
    at com.google.inject.internal.ConstructorInjectorStore$1.create (ConstructorInjectorStore.java:37)
    at com.google.inject.internal.ConstructorInjectorStore$1.create (ConstructorInjectorStore.java:33)
    at com.google.inject.internal.FailableCache$1.load (FailableCache.java:40)
    at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture (LocalCache.java:3540)
    at com.google.common.cache.LocalCache$Segment.loadSync (LocalCache.java:2321)
    at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad (LocalCache.java:2284)
    at com.google.common.cache.LocalCache$Segment.get (LocalCache.java:2199)
    at com.google.common.cache.LocalCache.get (LocalCache.java:3951)
    at com.google.common.cache.LocalCache.getOrLoad (LocalCache.java:3955)
    at com.google.common.cache.LocalCache$LocalLoadingCache.get (LocalCache.java:4870)
    at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked (LocalCache.java:4876)
    at com.google.inject.internal.FailableCache.get (FailableCache.java:51)
    at com.google.inject.internal.ConstructorInjectorStore.get (ConstructorInjectorStore.java:48)
    at com.google.inject.internal.ConstructorBindingImpl.initialize (ConstructorBindingImpl.java:155)
    at com.google.inject.internal.InjectorImpl.initializeBinding (InjectorImpl.java:581)
    at com.google.inject.internal.AbstractBindingProcessor$Processor$1.run (AbstractBindingProcessor.java:176)
    at com.google.inject.internal.ProcessedBindingData.initializeBindings (ProcessedBindingData.java:49)
    at com.google.inject.internal.InternalInjectorCreator.initializeStatically (InternalInjectorCreator.java:122)
    at com.google.inject.internal.InternalInjectorCreator.build (InternalInjectorCreator.java:106)
    at com.google.inject.Guice.createInjector (Guice.java:87)
    at com.google.inject.Guice.createInjector (Guice.java:69)
    at com.google.inject.Guice.createInjector (Guice.java:59)
    at org.codehaus.plexus.DefaultPlexusContainer.addPlexusInjector (DefaultPlexusContainer.java:481)
    at org.codehaus.plexus.DefaultPlexusContainer.<init> (DefaultPlexusContainer.java:206)
    at org.apache.maven.cli.MavenCli.container (MavenCli.java:635)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:281)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)

你尝试在Maven命令结尾添加"-X"来运行吗?它将输出调试日志。 - hamid
嗨,感谢您的关注,是的,我做了。 - devrol
我修改了我的代码,以展示这个命令的结果给你。 - devrol
你的Java和Maven不兼容,请尝试将Maven升级到3.8.x。 - hamid
谢谢您的回答,但问题是它发生在Azure CLI上,而我没有权限进行此操作。 - devrol
2个回答

17

以上错误是由于Maven与Java版本不兼容引起的。

看起来是因为Maven 3.6.0与jdk17不兼容。尝试降级到jdk11,问题将会解决。

您可以下载Apache Maven并安装3.8.4版本,您可以在这里查找最新版本。


谢谢您的回答,但问题是它发生在Azure CLI上,而我没有权限进行此操作。 - devrol

1

我在Azure教程中遇到了同样的问题。 即使您无法覆盖服务器上的Java JDK,也可以将其添加到您的主目录存储库中。 个人而言,以下是我通过Azure Cli(bash)所做的:

1- 我进入了我创建的一个目录

cd /home/sylvie/java

2 - 我将openjdk-11下载到机器上并解压:

curl https://download.java.net/openjdk/jdk11/ri/openjdk-11+28_linux-x64_bin.tar.gz | tar -xz 

3 - 我更新了以下2个环境变量:

export PATH=/home/sylvie/java/jdk-11:$PATH
export JAVA_HOME=/home/sylvie/java/jdk-11

当我在我的Spring Boot应用程序目录中使用Maven命令时,我不再遇到这个问题。

您还可以在以下链接中阅读类似的建议https://learn.microsoft.com/en-us/answers/questions/850521/how-to-downgrade-java-version-default-installed-in.html


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接