`

运行期在WebRoot下创建目录会导致tomcat重新加载应用

阅读更多

目前维护的一个系统很是奇怪,必须将servers的publishing选项设置为never publish automatically,否则一登录系统tomcat立马重新加载应用,但是更改设置之后也不爽,对代码作出的修改不能立即生效了。真可谓是不想让你重启吧你非要重启,想让你重启吧还要点击一下publish to the server,令我郁闷之极。

 

光郁闷不行,得想办法解决啊,于是乎,开始断点调试,我看到底是哪个惹的祸。最后,定位到一块在web根目录下创建目录的操作代码段,只要执行完那句,立马让tomcat重新加载,非常好使。

 

我暂时想到的办法是,要么把这个目录移到webroot的外部,要么把创建目录改为创建不同名的文件,要么不改了顶多手工重启tomcat吧。

 

我非常好奇的是,除此之外还有什么别的办法呢,望遇到过此类问题的同路人能够指点迷津。

 

附上tomcat自动重新加载应用的控制台输出

2009-9-4 14:38:22 org.apache.catalina.core.StandardContext reload
信息: Reloading this Context has started
2009-9-4 14:38:25 org.apache.catalina.loader.WebappClassLoader loadClass
信息: Illegal access: this web application instance has been stopped already.  Could not load com.mysql.jdbc.profiler.ProfilerEventHandlerFactory.  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:1273)
 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
 at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
 at com.mysql.jdbc.ConnectionImpl.realClose(ConnectionImpl.java:4315)
 at com.mysql.jdbc.ConnectionImpl.close(ConnectionImpl.java:1461)
 at com.ibatis.common.jdbc.SimpleDataSource.forceCloseAll(SimpleDataSource.java:507)
 at com.ibatis.common.jdbc.SimpleDataSource.finalize(SimpleDataSource.java:738)
 at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
 at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83)
 at java.lang.ref.Finalizer.access$100(Finalizer.java:14)
 at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160)

 

3
1
分享到:
评论
2 楼 fangwei 2009-09-08  
ansjsun 写道
你可以修改conf/server.xml  
  配置  
  <context   path=""   debug="0"   docbase=""   reloadable="true">  
  reloadable="true"就表示tomcat在有变化时会自动加载,但他会浪费服务器资源 

谢谢,eclipse中tomcat默认的部署方式就是reloadable="true",我是想让它在发现诸如java,jsp,xml,property等文件的改动后自动重加载,但是不希望在我创建一个目录时重加载
1 楼 ansjsun 2009-09-08  
你可以修改conf/server.xml  
  配置  
  <context   path=""   debug="0"   docbase=""   reloadable="true">  
  reloadable="true"就表示tomcat在有变化时会自动加载,但他会浪费服务器资源 

相关推荐

    详解WebRoot与WebContent区别

    Web服务器在运行时会加载这些jar包,使得Web应用程序能够使用这些功能。 不同点WebRoot和WebContent的主要区别在于它们在Web项目中的用途和在项目构建过程中的角色。 1. WebRoot:在使用MyEclipse进行Web开发时,...

    将web部署到tomcat当中

    在Windows系统中,你需要配置两个环境变量:`CATALINA_HOME`指向Tomcat的安装目录,`PATH`添加 `%CATALINA_HOME%\bin`,这样可以在命令行中直接运行Tomcat的管理工具。 **步骤三:启动Tomcat** 进入Tomcat的bin目录...

    不使用Tomcat插件的情况下创建与运行Tomcat工程的步骤

    本篇文章将详细讲解在不使用Eclipse内置的Tomcat插件(例如,Eclipse的WTP - Web Tools Platform)的情况下,如何创建并运行一个Tomcat工程。这将涉及到手动配置Tomcat服务器和在Eclipse中设置项目属性。 1. **安装...

    Tomcat启动顺序

    总结来说,Tomcat的启动顺序是一个自底向上,从核心到应用的过程,依次加载Bootstrap、System、Common、Shared和WebApp类加载器,确保了服务的正确初始化和Web应用程序的隔离运行。理解这一启动流程对于调试、优化和...

    tomcat7部署应用

    标题“Tomcat7部署应用”涉及的是在Apache Tomcat 7服务器上发布和运行Web应用程序的基本过程。Apache Tomcat是一款开源的Java Servlet容器,广泛用于部署Java Web应用。以下是关于这个主题的详细知识点: 1. **...

    Tomcat上部署Web项目并运行

    在Tomcat服务器上部署并运行Web项目是Java EE开发中常见的操作,通常涉及以下知识点: 1. **Myeclipse IDE的使用**:Myeclipse是一个集成开发环境,它支持多种应用程序开发,包括Java EE。Myeclipse通常用于Web项目...

    部署WEB应用到Tomcat的三种方式

    此时,项目会被自动复制到Tomcat的`webapps`目录下,通常会作为一个名为`ROOT`的应用程序运行。 这种方式的优点在于它提供了高度自动化的过程,使得开发者可以更专注于代码编写而不是部署细节。 #### 二、使用...

    tomcat 7到9 版本

    然后,将你的Web应用的WAR文件放入`webapps`目录下,Tomcat会自动解压并部署应用。如果在Eclipse中,可以直接通过Eclipse的Server视图添加Tomcat服务器,并关联你的项目,实现快速开发和调试。 总的来说,这些...

    springboot web程序运行在jdk1.6、tomcat6的demo

    这个Demo项目展示了如何在较旧的环境,如JDK 1.6和Tomcat 6上运行SpringBoot 1.5.6的Web程序。尽管SpringBoot通常建议使用更新的Java版本和内置的Tomcat服务器,但有时由于兼容性或遗留系统的需求,可能需要在较低...

    精通Tomcat-Java Web应用开发

    这本书全面覆盖了Tomcat的基础知识、高级特性以及实战技巧,旨在帮助开发者熟练掌握在Tomcat上构建、部署和优化Web应用的全过程。 1. **Tomcat基础**:Tomcat是一个开源的、轻量级的Java Servlet容器,主要用于运行...

    Windows下Tomcat服务添加到系统服务

    ### Windows下Tomcat服务添加到系统服务 #### 一、引言 在Windows环境中,将Apache Tomcat应用服务器作为系统服务进行管理是非常实用的操作。这样做不仅能够提高系统的稳定性,还能简化日常运维工作流程,比如避免...

    让tomcat自动加载修改过的类和servlet

    3. **错误处理**:如果热部署过程中出现错误,如编译错误或类加载问题,可能会导致应用程序进入不稳定状态,此时可能需要手动干预或重启服务器来恢复。 为了优化热部署的效果,建议在开发环境中使用,而在生产环境...

    Tomcat目录结构及其说明

    - 放置在该目录下的Web应用会被Tomcat自动识别并部署。 7. **/work** - **位置**: `/work` - **用途**: - Tomcat将JSP生成的Servlet源文件和字节码文件放到这个目录下。 - JSP文件在首次请求时会被编译成...

    解决Tomcat不能部署

    在IT行业中,尤其是在Java Web开发领域,Tomcat服务器是一个广泛使用的应用服务器,它负责运行和部署Servlet和JSP应用程序。然而,"解决Tomcat不能部署"的问题常常困扰着开发者,尤其是那些使用MyEclipse集成开发...

    Tomcat5的目录结构

    - 在Tomcat启动时会自动根据JSP页面生成对应的Servlet类文件,并将它们存放在work目录下相应的子目录中。 #### 三、总结 通过上述介绍,我们可以了解到Tomcat5的目录结构是非常清晰和有组织的。每一个目录都有其...

    Java获取Tomcat下war包部署的Web工程根目录路径的方法

    开发web工程时经常要获取工程的根目录,自己用Java实现的获取Tomcat下war包部署的Web工程根目录路径的方法,主要利用web工程默认的目录结构,此外也可以指定工程名称获取工程目录的绝对路径

    Tomcat8 源码,可以在eclipse中直接运行

    Tomcat8是Apache软件基金会的Jakarta项目下的一个开源Java Servlet容器,它实现了Java EE中的Web应用服务器标准,特别是Servlet和JSP规范。本压缩包包含的是Tomcat8的源码,适合开发者进行深入学习和研究,了解其...

    在Tomcat部署和发布Web应用

    在部署 Web 应用到 Tomcat 时,通常需要将应用的 `.war` 文件(Web Application Archive)复制到 Tomcat 的 `webapps` 目录下,或者通过管理界面(如 `manager` 应用)进行在线部署。部署后,Tomcat 会自动解压 `....

    Web应用服务器tomcat视频.zip

    【描述】:本教程主要涵盖了与Web应用服务器Tomcat相关的知识,通过一系列视频课程,深入浅出地讲解了如何搭建LNMP架构,JDK的安装与配置,以及Tomcat的环境部署、目录结构解析和管理端配置等内容。以下是各视频课程...

Global site tag (gtag.js) - Google Analytics