`

tomcat 中关于自定义线程的关闭

阅读更多
开发环境:
Tomcat7 + Spring3 + Hibernate3

现象:
在tomcat中自定义的线程不能随着应用的停止而关闭(可以随着tomcat的停止而关闭)。

伴随异常:
-----------
...
严重:The web application ... appears to have started a thread named[NioSocketAcceptor-1] but has failed to stop it. This is very likely to create  a memory leak.
...

解决方法:
在停止应用的时候应该加入关闭自定义线程的处理。

以下是使用mina的例子:
1.应用开始的时候通过xml中的Listener初始化一个acceptor(acceptor的具体设定不在列出)
2.应用停止的时候在contextDestroyed中对acceptor其进行关闭。

web.xml
...
<listener>
    <listener-class>com.mina.test.InitListener</listener-class>
</listener>
...


InitListener.java

public class InitListener implements ServletContextListener
...
private ApplicationContext context;
public void contextDestroyed(ServletContextEvent arg0) {
    // 应用关闭的时候调用NioSocketAcceptor的dispose()方法
    // ioAcceptor就是定义在applicationContext-minaServer.xml中的bean名字
    NioSocketAcceptor nioacceptor = (NioSocketAcceptor)context.getBean("ioAcceptor");
    nioacceptor.dispose();
}

public contextInitiialized(ServletContextEvent arg0) {
    // 应用开始的时候初始化mina,会创建一个NioSocketAcceptor进程
    context = new ClassPathXmlApplicationContext("applicationContext-minaServer.xml");
}
0
0
分享到:
评论

相关推荐

    tomcat启动和关闭

    在实际操作中,启动和关闭Tomcat还可以通过命令行参数自定义,比如指定服务器的工作目录、日志位置等。对于大型生产环境,可能还会涉及到JVM调优,包括堆大小设置、垃圾收集策略等。 总之,理解和掌握Tomcat的启动...

    tomcat中server.xml详解

    《Tomcat中Server.xml详解》 在Apache Tomcat服务器中,`server.xml`是一个至关重要的配置文件,它定义了服务器的基本结构和行为。这个文件位于Tomcat安装目录下的`conf`子目录中,是整个Tomcat配置的核心。本文将...

    tomcat8.5.59

    在本文中,我们将详细探讨Tomcat 8.5.59版本,这是Tomcat 8.x系列的一个稳定版本,具有诸多改进和增强,旨在提供更高效、更安全的服务。 一、Tomcat 8.5的核心特性 1. Java EE 8支持:Tomcat 8.5系列全面支持Java ...

    tomcat6.0.35_tomcat_

    2. **启动与停止**:通过`bin/startup.sh`(Linux/Unix)或`bin/startup.bat`(Windows)脚本启动Tomcat,使用`bin/shutdown.sh`或`bin/shutdown.bat`关闭服务。 3. **配置文件**:主要的配置文件包括`conf/server....

    Tomcat 5.5 Tomcat 6.0 安装版本

    4. **启动与停止**:在Tomcat的`bin`目录下,找到`startup.bat`和`shutdown.bat`脚本,分别用于启动和关闭Tomcat服务。 5. **配置**:主要的配置文件位于`conf`目录下,包括`server.xml`(全局服务器配置)、`web....

    Tomcat 相关操作shell脚本

    3. **启动与停止Tomcat**:通过`bin/startup.sh`和`bin/shutdown.sh`脚本启动或关闭Tomcat服务。 4. **查看状态**:使用`bin/catalina.sh status`命令检查Tomcat服务是否运行。 二、Tomcat管理脚本 1. **自动部署...

    Tomcat8.5.rar

    9. **安全策略**:为了保障服务器安全,应定期更新Tomcat至最新版本,关闭不必要的服务端口,限制对管理界面的访问,以及配置SSL/TLS以实现数据传输加密。 10. **社区支持**:Apache Tomcat有一个庞大的用户社区,...

    tomcat 定时作业

    在IT行业中,Tomcat是一个广泛使用的开源Java应用服务器,它主要负责运行基于Servlet和JavaServer Pages(JSP)的应用程序。然而,除了作为Web服务器的角色,Tomcat还可以被用来执行定时任务,这对于需要定期执行...

    tomcat7优化

    开启并配置执行器,可以自定义线程属性,如: - **threadPriority**:设置线程优先级,默认为`Thread.NORM_PRIORITY`。 - **daemon**:是否为守护线程,默认值通常为true。 - **namePrefix**:线程名称前缀,用于...

    深入剖析Tomcat 随书 源码

    在性能优化方面,Tomcat提供了多线程模型,通过调整线程池参数(如maxThreads、minSpareThreads等)可以优化并发处理能力。此外,还可以通过压缩响应、缓存静态资源、减少session使用等方式提高性能。 安全性是另一...

    apache-tomcat-8.0.21

    8. **性能优化**:Tomcat可以通过调整连接器配置(如最大线程数、空闲超时等)、内存分配、JVM参数等方式进行性能优化。 9. **集群与负载均衡**:对于高可用性和负载均衡的需求,Tomcat支持集群配置,通过复制会话...

    Linux环境下tomcat7

    - **停止**: 使用`./shutdown.sh`命令来关闭Tomcat服务。 4. **配置服务器** - **server.xml**: 这是Tomcat的主要配置文件,位于`$CATALINA_HOME/conf`目录下,可以修改端口号、连接器、Context等配置。 - **...

    tomcat 7.0

    7. **线程池**:Tomcat 7支持自定义线程池配置,允许管理员根据服务器资源和负载调整线程数量,从而优化性能。 8. **内存泄漏防护**:Tomcat 7包含了一些防止内存泄漏的机制,比如在`Context`销毁时清理静态变量,...

    apache-tomcat-8.5.32-windows-x64安装版

    Apache Tomcat 8.5.32 是一个广泛使用的开源软件,它是一个Java Servlet...以上是关于Apache Tomcat 8.5.32在64位Windows系统上的安装和使用的基本知识,实际操作中,开发者还需要根据具体需求进行更深入的配置和优化。

    tomcat类库和源码

    在本压缩包中,你将找到Tomcat的类库和源代码,这对于理解其内部工作原理、进行自定义配置或者进行二次开发非常有帮助。 首先,让我们深入了解Tomcat的主要功能和组件: 1. **Catalina**:这是Tomcat的核心,负责...

    apache-tomcat-6下载

    6. **停止Tomcat**:在命令行中运行"shutdown.bat"来关闭服务器。 **社区支持和更新**: Apache Tomcat 6已不再接受安全更新,最新的版本为Apache Tomcat 9,因此为了安全性考虑,建议升级到最新稳定版本。开发者...

    官方原版apache-tomcat-8.5.53-windows-x64.zip

    以下是关于这个版本的Apache Tomcat的一些详细知识点: 1. **Tomcat版本**:8.5.53是Tomcat的一个稳定版本,它修复了之前版本中的许多bug,并提供了更好的性能和安全性。在8.x系列中,8.5是最新的长期支持(LTS)...

    tomcat配置大全 tomcat配置大全

    在给定的描述中,作者提到了使用MyEclipse进行开发环境的搭建,包括安装MySQL数据库,配置Tomcat,以及添加Struts和Hibernate的支持。在MyEclipse中,创建Web项目,配置数据库连接,建立Struts和Hibernate的特性。这...

    tomcat7.0.69

    8. **多线程支持**:Tomcat 7.0.69支持多线程模型,允许并发处理多个请求,提高了服务器的吞吐量。 9. **可扩展性**:Tomcat设计为轻量级应用服务器,但通过与其他开源组件集成,如Spring框架,可以实现更复杂的...

    TomcatMonitor

    在【描述】中提到的"loadrunner 中对tomcat的监控",意味着我们要关注的重点是如何利用LoadRunner来监控Tomcat服务器的关键指标,如CPU使用率、内存消耗、请求响应时间、线程状态等。LoadRunner支持创建Vuser(虚拟...

Global site tag (gtag.js) - Google Analytics