无法加载org.jgroups.protocols.pbcast.GmsImpl $ Request

时间:2015-06-11 07:18:56

标签: java jgroups

当我使用J2Cache时,我不知道这个错误:

INFO: Illegal access: this web application instance has been stopped already.  Could not load org.jgroups.protocols.pbcast.GmsImpl$Request.  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:1612)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
at org.jgroups.protocols.pbcast.GMS.up(GMS.java:855)
at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:234)
at org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:636)
at org.jgroups.protocols.BARRIER.up(BARRIER.java:103)
at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:147)
at org.jgroups.protocols.FD_ALL.up(FD_ALL.java:185)
at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:301)
at org.jgroups.protocols.MERGE2.up(MERGE2.java:209)
at org.jgroups.protocols.Discovery.up(Discovery.java:379)
at org.jgroups.protocols.TP.passMessageUp(TP.java:1412)
at org.jgroups.protocols.TP$MyHandler.run(TP.java:1598)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)

Jun 11, 2015 2:47:30 PM org.apache.catalina.connector.CoyoteAdapter log
WARNING: Exception while attempting to add an entry to the access log
java.lang.NullPointerException
at org.apache.catalina.connector.CoyoteAdapter.log(CoyoteAdapter.java:557)
at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:182)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)

上述错误发生在tomcat的首发。

我用Google搜索了一下。 有人说:

  

如果在Java进程上使用QUIT信号,它应该输出一个线程   应该识别哪些线程仍在运行的转储   防止正常关机。我偶尔也见过这个   HSQLDB版本的驱动程序没有正常关闭但是   它可能是您安装中部署的任何其他内容。

     

发送QUIT信号:kill -QUIT JAVA_PID

     

其中JAVA_PID是您可以检索的Java进程的进程ID   使用:ps aux

但不幸的是,我无法理解。

有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

这个问题听起来很熟悉 - https://issues.jboss.org/browse/JGRP-826。我的猜测是,在仍有JGroups线程运行时,tomcat已经关闭。你如何关闭Tomcat?你也明确关闭了缓存吗?当应用程序关闭时,我会尝试实现ServletContextListener来接收回调。此时我也会尝试显式关闭缓存。这一切当然取决于您使用缓存的方式和位置。