【发布时间】:2013-02-26 11:07:34
【问题描述】:
我正在尝试使用 tomcat 7 部署 war 文件,但出现这些错误。
Feb 26, 2013 3:42:48 PM org.apache.catalina.loader.WebappClassLoader loadClass
INFO: Illegal access: this web application instance has been stopped already. Could not load org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager$11. 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:1599)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1558)
at org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager.performScheduledTasks(DefaultLuceneSearchEngineIndexManager.java:426)
at org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager$ScheduledIndexManagerRunnable.run(DefaultLuceneSearchEngineIndexManager.java:527)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown Source)
at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
同样的战争在其他机器上运行良好,但它在生产机器上给出了这个错误。我尝试更改机器中的 apache 服务器和 jdk,但没有效果。谁能告诉我这个错误与什么有关?
【问题讨论】:
-
localhost.2013.02.26.log的输出是什么?我从catalina.out得到了相同的输出,但实际上它只是说the application is already stopped。这种停止的原因应该在localhost -
localhost.2013.02.26.log 是空的,只是一些不相关的东西。但是,我在 tomcat7-stderr.2013.02.23.log 中发现了同样的东西
-
问题似乎与
org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager有关。您确定必要的jar在您的类路径中也在生产机器上吗?我没有使用 Compass 或 Grails 的经验,但这似乎是一个包装问题。 -
我在另一台机器上部署了战争,它成功了!另外,我在生产机器上使用了另一个战争(来自我们应用程序的旧版本),它也能正常工作!
-
你确定,你有正确的 JVM 版本吗?如果你用 Java 7 构建,它不会在 6 下运行,等等。而且 TomCat 需要 JDK,JRE 是不够的。也使用 SUN (Oracle) JDK,而不是 OpenJDK。
标签: java tomcat grails deployment war