java.lang.NoClassDefFoundError: com/opensymphony/xwork2/util/logging/LoggerFacto
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java.lang.NoClassDefFoundError: com/opensymphony/xwork2/util/logging/LoggerFacto相关的知识,希望对你有一定的参考价值。
我碰到了严重的问题,谁能帮我解决下,我感觉是包的问题,但又不知道哪的错?
严重: Exception starting filter struts2
java.lang.NoClassDefFoundError: com/opensymphony/xwork2/util/logging/LoggerFactory
at org.apache.struts2.dispatcher.Dispatcher.<clinit>(Dispatcher.java:98)
at org.apache.struts2.dispatcher.ng.InitOperations.createDispatcher(InitOperations.java:104)
at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:68)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:48)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3709)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4363)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.ClassNotFoundException: com.opensymphony.xwork2.util.logging.LoggerFactory
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
... 22 more
将环境变量里的:
_classload_hook
_JAVA_OPTIONS
IBM_JAVA_OPTIONS
JAVA_TOOL_OPTIONS
删掉,即可解决该问题 参考技术D 在你执行的时候,源文件加上包名执行试试。 第5个回答 2012-03-15 java.lang.NoClassDefFoundError: com/opensymphony/xwork2/util/logging/LoggerFactory
看下这个日志包是不是加载,或者是不是加载冲突?本回答被提问者采纳
获取 NoClassDefFoundError:无法初始化类 org.codehaus.groovy.vmplugin.v7.Java7
【中文标题】获取 NoClassDefFoundError:无法初始化类 org.codehaus.groovy.vmplugin.v7.Java7【英文标题】:Getting NoClassDefFoundError: Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7 【发布时间】:2020-12-17 13:25:01 【问题描述】:我在启动 Spring Boot 应用程序时收到以下错误。
java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.reflection.ReflectionCache
at org.codehaus.groovy.runtime.dgmimpl.NumberNumberMetaMethod.<clinit>(NumberNumberMetaMethod.java:33) ~[groovy-2.5.8.jar:2.5.8]
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:na]
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) ~[na:na]
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481) ~[na:na]
at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.createMetaMethodFromClass(MetaClassRegistryImpl.java:258) ~[groovy-2.5.8.jar:2.5.8]
at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:111) ~[groovy-2.5.8.jar:2.5.8]
at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:86) ~[groovy-2.5.8.jar:2.5.8]
at groovy.lang.GroovySystem.<clinit>(GroovySystem.java:36) ~[groovy-2.5.8.jar:2.5.8]
at org.springframework.beans.factory.groovy.GroovyBeanDefinitionReader.<init>(GroovyBeanDefinitionReader.java:150) ~[spring-beans-5.2.2.RELEASE.jar:5.2.2.RELEASE]
at org.springframework.boot.BeanDefinitionLoader.<init>(BeanDefinitionLoader.java:85) ~[spring-boot-2.2.2.RELEASE.jar:2.2.2.RELEASE]
at org.springframework.boot.SpringApplication.createBeanDefinitionLoader(SpringApplication.java:738) ~[spring-boot-2.2.2.RELEASE.jar:2.2.2.RELEASE]
at org.springframework.boot.SpringApplication.load(SpringApplication.java:681) ~[spring-boot-2.2.2.RELEASE.jar:2.2.2.RELEASE]
at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:392) ~[spring-boot-2.2.2.RELEASE.jar:2.2.2.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:314) ~[spring-boot-2.2.2.RELEASE.jar:2.2.2.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) ~[spring-boot-2.2.2.RELEASE.jar:2.2.2.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) ~[spring-boot-2.2.2.RELEASE.jar:2.2.2.RELEASE]
at pizzainthecloud.pizzaplace.Application.main(Application.java:23) ~[main/:na]
经过大量搜索,我发现了包括 java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7 在内的多个实例,但大多数是旧版本 gradle 和 groovy 上的旧帖子,或者它们与 android 相关。
这是我的版本信息:
$ gradle -version
------------------------------------------------------------
Gradle 6.6.1
------------------------------------------------------------
Build time: 2020-08-25 16:29:12 UTC
Revision: f2d1fb54a951d8b11d25748e4711bec8d128d7e3
Kotlin: 1.3.72
Groovy: 2.5.12
Ant: Apache Ant(TM) version 1.10.8 compiled on May 10 2020
JVM: 14.0.2 (Oracle Corporation 14.0.2+12-46)
OS: Linux 5.4.0-42-generic amd64
除了我的单元测试完全是 groovy/spock 之外,我没有做任何 groovy 并且我正在使用 gradle 作为我的构建引擎。
按照我找到的指示,我继续将我的 gradle-wrapper.properties
文件更改为
distributionUrl=https\://services.gradle.org/distributions/gradle-6.6-bin.zip
它是 6.5-bin。
这个项目在我使用 Java 8 的旧计算机上运行良好。我将它移到了我的新工作站并尝试移到 open JDK 14
,这就是新问题开始的时候。
想知道从这里去哪里。
【问题讨论】:
【参考方案1】:来自https://github.com/gradle/gradle/issues/10248
似乎 GROOVY-9211 不会被向后移植到 2.5.x。因此,Gradle 似乎需要升级到 Groovy 3.x 才能支持 JDK 14。
在 Gradle 使用 Groovy 3.x 之前,您需要使用 JDK 13。
【讨论】:
我想这让我很困惑,因为我没有意识到 gradle 使用的 groovy 版本比可用版本要旧得多。切换到 jdk 13 解决了我的问题。感谢您的输入。我编辑了您的答案,以便在将来提供更多指导。【参考方案2】:我在使用 maven 3.2 时遇到了同样的问题。和 JDK 1.8。升级到 JDK 11 解决了它。
【讨论】:
以上是关于java.lang.NoClassDefFoundError: com/opensymphony/xwork2/util/logging/LoggerFacto的主要内容,如果未能解决你的问题,请参考以下文章