bill_ding007 发表于 2014-03-19 12:11

tomcat关闭报错

我的tomcat在关闭时老是失败,要借助于kill -9 pid可是这样毕竟不怎么好,在网找到方法说用
#jstack PID

"Finalizer" daemon prio=10 tid=0xb6c34400 nid=0x2e9a in Object.wait()
   java.lang.Thread.State: WAITING (on object monitor)
      at java.lang.Object.wait(Native Method)
      - waiting on <0x843bed40> (a java.lang.ref.ReferenceQueue$Lock)
      at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
      - locked <0x843bed40> (a java.lang.ref.ReferenceQueue$Lock)
      at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
      at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=10 tid=0xb6c32c00 nid=0x2e99 in Object.wait()
   java.lang.Thread.State: WAITING (on object monitor)
      at java.lang.Object.wait(Native Method)
      - waiting on <0x843bedd0> (a java.lang.ref.Reference$Lock)
      at java.lang.Object.wait(Object.java:485)
      at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
      - locked <0x843bedd0> (a java.lang.ref.Reference$Lock)

"main" prio=10 tid=0xb6c04c00 nid=0x2e97 runnable
   java.lang.Thread.State: RUNNABLE
      at java.net.PlainSocketImpl.socketAccept(Native Method)
      at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408)
      - locked <0x8491a538> (a java.net.SocksSocketImpl)
      at java.net.ServerSocket.implAccept(ServerSocket.java:462)
      at java.net.ServerSocket.accept(ServerSocket.java:430)
      at org.apache.catalina.core.StandardServer.await(StandardServer.java:452)
      at org.apache.catalina.startup.Catalina.await(Catalina.java:766)
      at org.apache.catalina.startup.Catalina.start(Catalina.java:712)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
      at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:456)

"VM Thread" prio=10 tid=0xb6c28400 nid=0x2e98 runnable

"VM Periodic Task Thread" prio=10 tid=0xb6c3e000 nid=0x2e9e waiting on condition

JNI global references: 1423

红色标记部分可以看到线程名和是否为deamon线程。没有标记为deamon的几个线程正好是我创建的线程,所以我要将其设置为deamon,于是在对应的Thread构造函数添加了一句
this. setDaemon(true);
kill掉tomcat后再重新尝试。
这里我想问一下,这个对应的Thead在哪个文件内呢?
页: [1]
查看完整版本: tomcat关闭报错