`

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-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

    Windows7系统IIS7+Tomcat集成

    在浏览器中输入 localhost(不加 8080)访问 IIS 的服务器,可以看到 IIS 已经指向了 tomcat,为了 能更好的服务最好将两个服务器指向同一个的 Web 的目录,这样的 IIS 就支持 jsp 了,完成之 后重新启动。 在 tomcat ...

    Windows10下部署多个tomcat,并启动

    我要启动3个tomcat,解压后的文件夹,复制出两个新的文件夹,并重命名。 3、修改环境变量 添加以下环境变量 变量名 值 TOMCAT_HOME D:\Program Files\apache-tomcat-8.5.34 TOMCAT_HOME_1 D:\

    nisi脚本配置jdk tomcat mysql redis

    #卸载的时候必须设置JAVA_HOME 和 CATALINA_HOME两个环境系统变量为空,或者删除这两个系统变量。否则会出现NSIS选择系统变量的错误(NSIS会自动选择之前有值的系统变量,而不是选择当前刚设置的系统变量) ...

    dubbo-zookeeper springSpringMVC 一个生产者,多消费者 例子

    两个service 生产者的端口分别是 8081 8082 ,不同点就是dubbo 的注册端口不同,详情见两个tomcat里的dubbo-provider.xml 配置里 web 消费者 端口是8080 3.启动步骤 1.打开 dubbo-service.bat 2. 依照指令 ...

    编程体验BBS论坛

    这时在windows的系统托盘中会显示标识Tomcat服务器启动状态的图标,如果显示为,则说明Tomcat服务器没有启动,这时可以在该图标上单击鼠标右键在弹出的快捷菜单中选择“Start Service”菜单项启动Tomcat服务器,启动...

    基于JavaWeb实现用于网络安全传输隐私随机密码平台源码+使用教程.zip

    2. 密码可以通过该链接进行访问,但该链接只可以访问两次,分别由用户A和用户B各访问一次。 3. 当链接被访问第三次时,链接将失效,确保密码的安全。 部署教程 # 数据库配置 在MySQL中,使用以下SQL语句创建数据...

    自写博客系统

    这时在windows的系统托盘中会显示标识Tomcat服务器启动状态的图标,如果显示为,则说明Tomcat服务器没有启动,这时可以在该图标上单击鼠标右键在弹出的快捷菜单中选择“Start Service”菜单项启动Tomcat服务器,启动...

    完整的基于JSP的博客网

    这时在windows的系统托盘中会显示标识Tomcat服务器启动状态的图标,如果显示为 ,则说明Tomcat服务器没有启动,这时可以在该图标上单击鼠标右键在弹出的快捷菜单中选择“Start Service”菜单项启动Tomcat服务器,...

    openssl生成认证证书的工具

    方法如下: 命令行执行%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA 执行过程中会询问你一些信息,比如国家代码,省市等,其中...之后启动tomcat,问题应该解决了,看起来效果和第一种方式没什么不同。

    java结课设计,一款完全基于servlet的网盘系统,无后端框架、无jsp

    提供一个存储自己资源、分享自己资源、享受他人资源的文件共享平台。 # 快速搭建 ```bash git clone cd ./pan ``` 使用项目里的.sql文件创建...Tips:第一次启动需要注册一个用户名为admin的账号,默认为管理员权限

    Jenkins安装教程.docx

    在最简单的情况下,Jenkins 只需要两个步骤: 1.下载最新的版本(一个 WAR 文件)。Jenkins官方网址: http://Jenkins-ci.org/ 2.运行 Java -jar jenkins.war 注意:Jenkins 需要运行 Java 5以及以上的版本。 ...

    phpStudy 2016.10.31 再次更新,支持自定义php版本

    JspStudy集成JDK+tomcat+Apache+mysql,JSP环境配置一键启动。无需修改任何配置即可迅速搭建支持JSP的服务器运行环境。 纯绿色解压即可,支持系统服务和非服务两种启动方式,自由切换。控制面板更加有效直观地进行...

    phpstudy-x64.zip

    JspStudy集成JDK+tomcat+Apache+mysql,JSP环境配置一键启动。无需修改任何配置即可迅速搭建支持JSP的服务器运行环境。 纯绿色解压即可,支持系统服务和非服务两种启动方式,自由切换。控制面板更加有效直观地进行...

    phpStudy 2014.1.20

    该程序包集成最新的Apache+Nginx+LightTPD+...纯绿色解压即可,支持系统服务和非服务两种启动方式,自由切换。控制面板更加有效直观地进行控制程序的启停。 JspStudy将复杂的JSP环境配置简单化。

    Java秒杀系统方案优化高性能高并发学习实战源代码以及笔记..zip

    明文密码两次md5处理 JSR303参数校验 + 全局异常处理器 分布式session, 通过cookie完成分布式session功能. 将cookie存放到redis中. 第3章-秒杀功能开发及管理后台 学习到了基础的商品下单流程, 查库存,查是否重复...

    AnyFo - EricSofa:专门用于C/S结构的网络服务器中间件

    并且,在业务逻辑开发过程中,服务器不用反复重新启动,启动一次,就能够自动部署开发人员逐步开发出的代码,将 代码融合到服务器中,实现“热部署”。 正是Tomcat这样的中间件的存在,给全世界的的B/S结构的软件...

    数飞网络投票评选系统修复版

    数飞网络在线投票系统是真正意义上的网络投票系统,本系统是数飞尔团队资深项目开发成员的呕心力作,它集合开发**台和数据库为一体,用户下载...6、本系统为数飞尔公司独立自主研发,若项目需要可提供源代码以及二次开

    网络投票评选系统.7z

    网络在线投票系统是真正意义上的网络投票系统,本系统是数飞尔团队资深项目开发成员的呕心力作,它集合开发**台和数据库为一体,用户下载...6、本系统为数飞尔公司独立自主研发,若项目需要可提供源代码以及二次开发培

Global site tag (gtag.js) - Google Analytics