46

我遇到这种异常,有人可以帮我解决这个问题吗?

java.lang.IllegalStateException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1566)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at org.quartz.utils.UpdateChecker.getClientId(UpdateChecker.java:149)
at org.quartz.utils.UpdateChecker.buildParamsString(UpdateChecker.java:120)
at org.quartz.utils.UpdateChecker.buildUpdateCheckUrl(UpdateChecker.java:114)
at org.quartz.utils.UpdateChecker.doCheck(UpdateChecker.java:55)
at org.quartz.utils.UpdateChecker.checkForUpdate(UpdateChecker.java:47)
at org.quartz.utils.UpdateChecker.run(UpdateChecker.java:39)
at java.util.TimerThread.mainLoop(Unknown Source)
at java.util.TimerThread.run(Unknown Source)

我也遇到了与Could not load java.net.URLEncoderand相同的异常Could not load java.net.URLConnection。我正在使用 Eclipse Indigo SR1 和 Tomcat V6.0

4

4 回答 4

32

重启服务器后可以解决这个问题,服务器正在缓存旧版本的应用程序。

看这里

于 2013-03-20T10:47:08.577 回答
21

您无法通过“重新启动服务器”来解决此问题。

问题是当您通过将新版本上传到 Tomcat 来更新您的应用程序时,某些资源没有被正确清理。可以是任何东西,从失控的线程,到某种预定的服务,再到一个监听器。当该进程试图加载一个类时,Tomcat 会检测并阻止它。

该问题的解决方案是正确跟踪并在关闭时关闭这些线程。

于 2017-06-26T14:45:17.700 回答
1

我最近也遇到了这个问题。在我的情况下,问题是由一个未处理的异常产生的,该异常javax.servlet.ServletContextListener记录在一个 localhost-date.log 中。由于该异常,未部署 webapp,但已启动java.util.concurrent.Executors的仍在运行,这导致 catalina-date.log 中的另一个异常链:
java.lang.IllegalStateException:非法访问:此 Web 应用程序实例已停止。无法加载 WhatEver.class

我的情况的解决方案:

  • 检查所有 Tomcat 日志
  • 修复异常javax.servlet.ServletContextListener
于 2020-11-11T15:42:19.933 回答
0

我遇到了类似的问题。我已经通过在 VM 参数中增加 Server 的 permsize 来解决-XX:MaxPermSize=1024m

于 2018-10-11T05:48:38.030 回答