浏览 7037 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2013-05-05
在Servlet的init方法里面启动这个schedule。 Job的run方法中每次执行的时候都会打info级别的日志处理。 然后在web.xml文件中注册这个Servlet,设置了load-on-startup的值为3 <servlet> <servlet-name>AtmJobServlet</servlet-name> <servlet-class>com.baoxian.atm.AtmJobServlet</servlet-class> <strong><load-on-startup>3</load-on-startup></strong> </servlet> 在IDE里面启动tomcat是没有问题的,但是将这个工程打包发布到服务器的tomcat目录下面去后再启动,每次执行Job的时候会打两次日志,执行两次run方法。 在tomcat/conf/server.xml中的配置是这样的: <Host name="atm.baoxan.net" appBase="dtcloud" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase="atm" /> </Host> 将工程打包后解压缩到了tomcat/dtcloud/atm目录下,tomcat/dtcloud/目录下还有一个ROOT目录,跟atm目录同级。 搜索了站内有篇文章:Tomcat服务器中Quartz重复执行两次原因浅析。 情况有点类似,不过是不行的。 我在想,tomcat的启动机制干嘛要弄这么麻烦,在Host的配置里面已经写得清清楚楚了,从哪个文件夹启动工程,为什么还非得加载两次呢 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2013-05-06
去掉<Context path="" docBase="atm" />试试, 应该是tomcat加载了两次这个项目
|
|
返回顶楼 | |
发表时间:2013-05-06
unpackWARs改成false试试看
|
|
返回顶楼 | |
发表时间:2013-05-06
不用那样,想发布那个,context标签里面docBase和workDir目录直接写上其绝对路径就可以了。
|
|
返回顶楼 | |
发表时间:2013-05-06
tomcat的加载顺序是
1)server.xml中<Host>/<Context> 2) conf/<engine name>/<host name>/context xml 3) webapps/war 4) webapps/文件夹 host下每个context的name唯一,加载序列中如果前面加载了相同名称的context,则不会在后面继续加载,你这个要么<Host>/<Context>中path配置与webapps里的文件夹同名,要么将这个文件夹放webapps外的其他地方,然后以绝对路径指过去 |
|
返回顶楼 | |
发表时间:2013-05-06
gearever 写道 tomcat的加载顺序是
1)server.xml中<Host>/<Context> 2) conf/<engine name>/<host name>/context xml 3) webapps/war 4) webapps/文件夹 host下每个context的name唯一,加载序列中如果前面加载了相同名称的context,则不会在后面继续加载,你这个要么<Host>/<Context>中path配置与webapps里的文件夹同名,要么将这个文件夹放webapps外的其他地方,然后以绝对路径指过去 谢谢,改用绝对路径,成功了。 |
|
返回顶楼 | |