WARN main OnLineListener - 程序初始化完毕
DEBUG Thread-5 OnLineListener - adminusername
INFO Thread-5 OnLineListener - 管理用户登录 登录名:我是管理员 目前登录管理员数:1
DEBUG Thread-5 OnLineListener - usernick
INFO Thread-5 OnLineListener - 正常用户登录 登录名:张维 目前登录用户数:1
DEBUG Thread-3 OnLineListener - adminusername
INFO Thread-3 OnLineListener - 管理用户登录 登录名:真的 目前登录管理员数:2
DEBUG Thread-3 OnLineListener - usernick
INFO Thread-3 OnLineListener - 正常用户登录 登录名:呵呵 目前登录用户数:2
下面一条是关闭tomcat时产生的
INFO main OnLineListener - 正常用户退出 登录名:张维 目前登录用户数:1
----------
以上是日志文件 可以看最后一行 应该还有一个正常用户和两个管理员还没做退出处理!
还应有一个程序退出的信息
我是要如果关闭tomcat应该自动使在线用户作退出时的操作 比如写数据库!

解决方案 »

  1.   

    668 WARN main OnLineListener - 程序初始化完毕
    684 DEBUG Thread-5 OnLineListener - adminusername
    734 INFO Thread-5 OnLineListener - 管理用户登录 登录名:我是管理员 目前登录管理员数:1
    734 DEBUG Thread-5 OnLineListener - usernick
    734 INFO Thread-5 OnLineListener - 正常用户登录 登录名:张维 目前登录用户数:1
    ------------stop tomcat
    312 INFO StandardManager[/lwztomcat] OnLineListener - 正常用户退出 登录名:张维 目前登录用户数:0
    312 INFO StandardManager[/lwztomcat] OnLineListener - 管理用户退出 登录名:我是管理员 目前登录用户数:0
    502 WARN main OnLineListener - 程序退出!
    --------------------
    这一次正常了 但怎么解决这种不稳定???
    还是有更好的解决方法?
      

  2.   

    让ServletContextListener的实现在非守护线程中运行(setDaemon(false))
      

  3.   

    tomcat关闭的时候,应该不管用户什么的吧它只是使自己的一下线程或者自己操作的一些关闭那个应不是本身的问题了吧?
      

  4.   

    你可以在tomcat里面配一个servlet,并把web.xml中的servlet配成<load-on-startup>2</load-on-startup>(只要大于1就可以了),让它在tomcat启动的时候就自动的起来,只要把这个servlet中的destroy方法重写一遍,做你想要得db操作,我想这样就可以了。你试试吧!
      

  5.   

    web.xml中不是可以设置一个监听吗?
    listener>         <listener-class>ServletContextListener</listener-class>    </listener>而我在在这个监听中已经有作楼上兄弟一样的操作了
      

  6.   

    呵呵!我没有用过这个listener,不过我用过destroy,是可以的。