java.lang.IllegalStateException问题的发现与解决

四月 20, 2016 1:18:30 下午 org.apache.catalina.loader.WebappClassLoader loadClass
信息: Illegal access: this web application instance has been stopped already.  Could not load org.quartz.StatefulJob.  The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
java.lang.IllegalStateException
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1610)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1569)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Unknown Source)
	at org.quartz.JobDetail.class$(JobDetail.java:279)
	at org.quartz.JobDetail.isStateful(JobDetail.java:425)
	at org.quartz.simpl.RAMJobStore.triggerFired(RAMJobStore.java:1312)
	at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:342)

Exception in thread "QuartzScheduler_QuartzSchedulerThread" java.lang.NoClassDefFoundError: org.quartz.StatefulJob
	at org.quartz.JobDetail.class$(JobDetail.java:279)
	at org.quartz.JobDetail.isStateful(JobDetail.java:425)
	at org.quartz.simpl.RAMJobStore.triggerFired(RAMJobStore.java:1312)
	at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:342)



以上的报错信息挨个查找,分别汇总为以下可能情况

1、tomcat 自启动问题 ,将server.xml重新配置为 reload=false ,依旧没有解决问题


2、内存溢出,将Tomact的内存设置变大以后,依旧没有解决的问题


3、类丢失,尝试重新加载JAR包,包括项目和Tomact的,依旧没有解决的问题


解决方案:

上面的报错信息看上去特别像是没有找到类,但是实际去TOMACT/LOGS/host-xx.xx.xx目录下查看日志信息的时候,发现并不是这个错误,而是我一个代码处理的问题。

TOMACT/LOGS目录下的日志信息,才是你真正的错误原因,祝好运!

附:如何打印出LOGS下的日志信息

`java.lang.IllegalStateException` 是一个运行时异常,通常发生在代码尝试在不合适的时间调用某个方法或操作。以下是几种可能导致该异常的情况和解决方法: 1. 操作状态错误:当尝试在未准备好的状态下执行某个操作时,将抛出 `IllegalStateException`。例如,在视图还没有完成布局之前尝试访问视图的大小或位置。解决方法是确保在执行任何操作之前,所有必要的资源都已准备好,如使用 `View.post()` 方法在视图完成布局后再进行操作。 2. 资源已释放:当尝试使用已经被释放的资源或对象时,将抛出 `IllegalStateException`。例如,在使用已经关闭的数据库连接或已经释放的线程池执行任务时,都会导致该异常。解决方法是确保资源在使用之前都处于可用状态,并且在使用后及时释放资源。 3. 状态转换错误:当尝试从一个状态转换到另一个状态时,如果状态转换不合法,则会抛出 `IllegalStateException`。例如,在 `MediaPlayer` 对象还没有准备好时尝试播放音频文件,将抛出该异常。解决方法是确保在进行状态转换之前,所有必要的操作和条件都已满足。 4. 数据格式错误:当尝试使用不正确的数据格式或类型时,将抛出 `IllegalStateException`。例如,在尝试将一个非数字字符串转换为数字时,将抛出该异常。解决方法是确保使用正确的数据格式和类型进行操作,并进行必要的数据类型转换。 总之,要避免 `IllegalStateException` 异常,需要仔细检查代码中所有操作的前提条件和后置条件,并确保在进行任何操作之前,所有必要的资源和条件都已准备好。同时,需要合理地处理异常情况,以避免程序崩溃或出现不可预期的行为。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值