`

Tomcat启动两次的问题

 
阅读更多

这是一个很有意思的问题困扰了一段时间,当我开发的一个系统使用了Quartz任务调度模块进行定时任务,在本机下运行没有问题。当部署到正式机上时,发现数据出现了不按期望的值的结果。原因就是任务执行了两次第二次把第一次的任务结果给修改了。关键是如何产生的这种情况。Google了一番,大家说到的原因主要是因为Tomcat下虚拟主机的配置造成的,比如我的域名叫作www.abc.com,那么默认的虚拟主机配置就是在server.xml文件下添加如下配置信息:

 

<Host name="www.abc.com"  appBase="webapps"
            unpackWARs="true"
            xmlValidation="false" xmlNamespaceAware="false">
   <Context path="" docBase="." reloadable="true" crossContext="true"/>
      </Host>

注意系统中原来默认配置主Host name=locahost也有一项其appBase也是webapps,问题就出在这里,每次Tomcat启动后,系统加载了name为localhost和www.abc.com的应用中的任务监听器各一次,这样肯定导致有两个任务管理器实例在运行,从而导致到点执行时会出现两个(如果虚拟主机多会产生多个)同时执行的任务。从而产生不良后果。

 

修改之后

<Host name="www.abc.com"  appBase=""
            unpackWARs="true"
            xmlValidation="false" xmlNamespaceAware="false">
   <Context path="/" docBase="app2/abc" reloadable="true" crossContext="true"/>
      </Host>

 

注意,这里将appBase置空,而使用docBase来设置应用路径,当然也可以用appBase="app2/abc",docBase="."来写。需要注意的是app2是建立在tomcat目录下,与webapps平级的一个文件夹。将应用abc目录发布到这里即可。

path属性,是用来指定访问该应用的路径名的。如果留空,则当输入http://www.abc.com:8080/就自动访问到了abc目录下的应用,当指定path="/abc"时,需要输入http://www.abc.com:8080/abc/才能够访问abc下的目录。

 

简单和同事研究试验了一番,粗浅的结论。需要以后不断细化深入了解Tomcat的配置。

分享到:
评论

相关推荐

    quartz 随tomcat启动执行一次

    tomcat启动时立即调用quartz执行一次

    Tomcat优化相关问题.pdf

    Tomcat 优化相关问题 Tomcat 优化是指对 Apache Tomcat 服务器进行性能调整和优化,以提高其处理请求的速度和效率。下面是 Tomcat 优化相关问题的详细知识点: 一、JVM 参数调优 在 Tomcat 中,JVM 参数调优是...

    开机自启tomcat.rar

    4. **跨主机协调**:由于数据库服务器和Tomcat不在同一台机器上,可能还需要处理网络连接问题和权限设置,确保两台机器之间的通信畅通无阻,并且启动脚本有权限访问远程数据库服务器的状态。 5. **故障恢复策略**:...

    tomcat自动定时重启

    4. **测试和调整**:设置好任务后,先手动触发几次任务,确保Tomcat能够正确地关闭和启动。如果一切正常,就可以将其设置为自动执行了。 自动定时重启Tomcat有助于在预定的时间点进行系统维护,避免在工作高峰期间...

    tomcat8.zip

    对于想要学习Tomcat工作原理或者进行二次开发的人来说,这是一个非常有价值的资源,因为它提供了实践和学习的机会。 【标签】"tomcat源码"强调了这个压缩包的核心内容,即Tomcat服务器的源代码。源码对于开发者来说...

    tomcat_host.rar

    3. 文件`Tomcat启动后加载两次和HOST的配置问题 - 一的日志 - 网易博客.mht`可能包含了详细的日志信息,这对于诊断问题非常有用。日志会显示Tomcat启动过程中的详细步骤,包括哪个部分可能触发了双启动。分析这些...

    Tomcat7.0.39官方安装包

    5. **安装过程**:安装包`apache-tomcat-7.0.39.exe`包含了安装向导,用户可以通过向导进行安装,选择安装路径、配置端口号等,最后启动Tomcat服务。 6. **配置与管理**:安装完成后,用户可以修改`conf/server.xml...

    tomcat在windows下部署

    这里解压了两次,分别创建了`C:\apache-tomcat-5.5.23-1`和`C:\apache-tomcat-5.5.23-2`两个目录,这样可以同时运行两个独立的Tomcat实例。 3. **配置Tomcat**:接下来,需要修改Tomcat的配置文件`server.xml`,...

    tomcat-redis-session-manager-master.rar

    本示例基于windows环境搭建 1、tomcat-redis-session-manager-master见目录中的说明 ...多次访问 http://127.0.0.1/session,两个tomcat对应应用轮流访问。 4、guns框架需要将 spring-session-open 值改为 true

    tomcat6,tomcat8,安装版,免安装版

    标题中的“tomcat6,tomcat8,安装版,免安装版”指的是Apache Tomcat的两个不同版本(Tomcat 6和Tomcat 8)以及它们的两种部署形式:安装版和免安装版。Apache Tomcat是一款开源的Java Servlet容器,主要用于运行...

    apache-tomcat-6.0.43.rar

    标题中的"apache-tomcat-6.0.43.rar"表明我们讨论的是Tomcat的6.0版本的第43次修订版,这是一个压缩文件,通常包含完整的Tomcat安装包。 描述中提到,这是一份"正版Tomcat v6.0.43",意味着它是一个官方发布的、...

    如何让tomcat服务增加java启动命令

    ServletContextListener接口有两个重要的方法:contextInitialized和contextDestroyed,这两个方法分别在Tomcat启动和关闭时被调用。我们可以在contextInitialized方法中执行游戏的主函数,以实现自启动。 三、计时...

    tomcat6+7 解压版

    在解压后,你可以通过执行`bin/startup.sh`(Unix/Linux)或`bin/startup.bat`(Windows)来启动Tomcat服务器。配置文件如`server.xml`位于`conf`目录下,可用于定制服务器的行为。 对于开发者来说,`webapps`目录...

    window和linux通用版Tomcat

    标题"window和linux通用版Tomcat"指的是这个软件版本可以在两种主流操作系统,即Windows和Linux上运行。Tomcat是一款开源的Java Servlet容器,它实现了JavaServer Pages(JSP)和Servlet的相关规范,是Web应用程序...

    Linux中tomcat日志切割

    无论是使用`logrotate`还是自定义脚本,记得在Tomcat的启动脚本中配置正确,以便在启动Tomcat时,它能指向新的`catalina.out`文件。通常,这可以通过修改`CATALINA_OPTS`环境变量或者`setenv.sh`文件来实现。 总结...

    tomcat-8.5-linux

    【压缩包子文件的文件名称列表】"apache-tomcat-8.5.32"是Tomcat的特定版本号,代表8.5系列中的第32次小版本更新。这个版本可能包含了性能优化、安全修复、新功能添加等改进。解压后的文件夹通常包含以下几个核心...

    quartz 调用两次任务

    在“quartz 调用两次任务”这个问题中,我们可能遇到了一个常见问题,即同一个 Quartz 任务被错误地触发执行了两次。 在 Quartz 中,任务(Job)是通过实现 `org.quartz.Job` 接口的类来创建的,而调度则是通过 `...

    Tomcat输出catalina.out的大小控制

    `catalina.out`是Tomcat默认的日志文件,它记录了Tomcat启动、运行以及错误信息,对开发者和管理员来说非常重要。然而,如果不进行适当管理,这个日志文件可能会无限制增长,占用大量磁盘空间,甚至可能导致服务器...

    apache-tomcat-7.0.53.zip

    在本案例中,我们有两个版本的Tomcat:`apache-tomcat-7.0.53.zip` 和 `apache-tomcat-8.0.47-windows-x64.zip`。这两个版本分别代表了Tomcat 7和Tomcat 8的不同更新版本,它们都是64位Windows系统下的安装包。 ...

    tomcat-jdbc.jar+tomcat-juli.jar

    例如,它支持预热连接,即在应用启动时初始化一定数量的连接,以减少第一次数据库请求的延迟。此外,它还支持自动重试操作,当数据库连接异常断开时,会尝试重新获取连接,保证了应用的稳定性。 `tomcat-juli.jar`...

Global site tag (gtag.js) - Google Analytics