在启动我的weblogic时(我的app war文件包含logback-classic-1.0.1.jar),我得到的是异常。任何建议?
<Sep 9, 2015 9:27:13 AM UTC> <Warning> <Common> <BEA-000632> <Resource Pool "JDBC Data Source-0" shutting down, ignoring 3 resources still in use by applications..>
Exception in thread "Thread-12" java.lang.NoClassDefFoundError: ch/qos/logback/classic/spi/ThrowableProxy
at ch.qos.logback.classic.spi.LoggingEvent.<init>(LoggingEvent.java:125)
at ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:468)
at ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:424)
at ch.qos.logback.classic.Logger.log(Logger.java:824)
at org.apache.commons.logging.impl.SLF4JLocationAwareLog.error(SLF4JLocationAwareLog.java:225)
at org.springframework.transaction.interceptor.TransactionAspectSupport.completeTransactionAfterThrowing(TransactionAspectSupport.java:415)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:114)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.cache.interceptor.CacheInterceptor$1.invoke(CacheInterceptor.java:58)
at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:213)
at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:66)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622)
................
at java.lang.Thread.run(Thread.java:701)
Caused by: java.lang.ClassNotFoundException: ch.qos.logback.classic.spi.ThrowableProxy
at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:297)
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270)
at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:64)
at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:179)
at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:52)
... 18 more
Exception in thread "Thread-18" java.lang.NoClassDefFoundError: ch/qos/logback/classic/spi/ThrowableProxy
at ch.qos.logback.classic.spi.LoggingEvent.<init>(LoggingEvent.java:125)
at ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:468)
at ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Logger.java:424)
at ch.qos.logback.classic.Logger.log(Logger.java:824)
at org.apache.commons.logging.impl.SLF4JLocationAwareLog.error(SLF4JLocationAwareLog.java:225)
at org.springframework.transaction.interceptor.TransactionAspectSupport.completeTransactionAfterThrowing(TransactionAspectSupport.java:415)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:114)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.cache.interceptor.CacheInterceptor$1.invoke(CacheInterceptor.java:58)
at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:213)
at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:66)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622)
.......................
at java.lang.Thread.run(Thread.java:701)
Caused by: java.lang.ClassNotFoundException: ch.qos.logback.classic.spi.ThrowableProxy
at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:297)
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270)
at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:64)
at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:179)
at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:52)
... 18 more
答案 0 :(得分:8)
我从Dropwizard服务器突破(ctrl-c)时遇到同样的错误,我终于明白了为什么我会得到它。
我的Dropwizard构建成一个胖jar,我使用Gradle构建,当我在本地计算机上运行服务器时,我直接从build / libs / ... fat.jar
运行它所以当我更改了源代码,再次构建app-server,并且Gradle覆盖了我正在运行的同一个jar&#34; java -jar ...&#34;时,会出现此异常,所以它&# 39;在那个会话之前没有使用的类不会加载,这并不奇怪:)
答案 1 :(得分:6)
在执行期间重建,删除或更新spring应用程序jar时会发生此错误。
参考:https://github.com/spring-projects/spring-boot/issues/4968
答案 2 :(得分:5)
当类路径不包含此类时会发生此类异常。
如果jar类位于类路径中,则需要注意在运行时使用的类路径应用程序。实际上,通常,classpath可以在运行时被覆盖,或者只是您可以使用不同的(例如,在启动脚本中)。
答案 3 :(得分:2)
对我们来说,这似乎意味着“你的文件句柄用完了,增加了你的打开文件句柄限制。” (正在创建太多套接字,全部使用它们)。相信原始答案here。
我见过的其他事情:确保你的春季靴子是at least 1.3.8
还要确保下面的罐子没有被覆盖/更改/不稳定的文件系统。 FWIW。
答案 4 :(得分:2)
我在使用 Spring Boot 版本 2.3.5.RELEASE 的 Spring Boot 应用程序中遇到了这个运行时错误。通过在我的 build.gradle 文件中添加以下依赖项来解决。
compile group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3'
compile group: 'ch.qos.logback', name: 'logback-core', version: '1.2.3'
答案 5 :(得分:0)
缺少的类肯定存在于您拥有的JAR中,我检查了logback-classic-1.0.1.jar:
2012-03-07 07:34:18 ..... 4729 2018 ch\qos\logback\classic\spi\ThrowableProxy.class
确保您的类路径设置正确。顺便说一句:如果可能的话,更新logback,因为这个版本已经有3年了。
答案 6 :(得分:0)
我看到两个选项(还没有足够的信息): 1.它在加载时发生,我打赌类路径,看到上面的答案。 2.经过一段时间后,当应用程序运行时(我的情况),请阅读下一段。
当我找到类没有找到错误并且同时出现与你相同的错误时,会发出相当大的错误,设备上没有剩余空间,即完整磁盘,满内存。
我的环境,是春季启动,自动包含logback,在maven中有重新包装,因此我需要包含的wverithing。 我的应用程序运行20分钟左右后出现此错误,有数千个线程。如果您不限制虚拟机器的内存,即使没有必要,它也会变得非常高。
一次(2天前)我花了3个小时环顾claspath stuf,...问题是全盘
答案 7 :(得分:0)
如果您确切地确保logback-class和logback-core已经在您的类路径中。见下文。 在您的Logback.xml中,您需要添加 debug =&#34; true&#34;
<configuration debug="true">
我遇到了问题&#39; java.lang.NoClassDefFoundError:ch / qos / logback / classic / spi / ThrowableProxy&#39;在我的tomcat。 但是,在添加debug =&#39; true&#39;之后,一切正常。
答案 8 :(得分:0)
我通过执行“ mvn install”而不是“ mvn clean install”解决了这个问题。