linux下Quartz被调度2次问题

最近写了一些定时任务,由于任务比较多,采用了Quartz来实现,但是在windows环境下测试的时候一切正常,但是放到linux服务器上的时候就出现了2次任务调度的情况,一个任务被执行了2次,无赖中的时候在javaeye上居然发现了解决方案:http://www.javaeye.com/post/575262?page=1

当我们吧项目发布到tomcat下的时候,windows下的tomcat的config下的service.xml文件中有段内容如下:

<Host name="localhost" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false"></Host>

但是在linux下则不同

<Host name="localhost" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
         <Context path="" docBase="object1" /></Host>

解决方案是:把linux 下的appBase="webapps"修改为appBase=""

多出了一行 <Context path="" docBase="you object name" />,这两段的区别是第二段去除了appBase="webapps"中的webapps变成了appBase="",因为web应用程序都是放在webapps这个目录下的,如果不把“webapps“去掉,这里会调用一次quartz的任务调度,在接下来的“<Context path”中又会调用一次quartz的任务调度,所以就重复了2次

通过以上修改后变成:

<Host name="localhost" appBase=""
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
         <Context path="" docBase="webapps/object1" /></Host>

这个时候tomcat默认路径http://localhost:8080/默认访问object工程,但是这个时候系统启动报错说找不到manmager和host-manager文件。于是有修改为以下2个Host:

<Host name="127.0.0.1" appBase=""
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">

<!--这个可以加访问路径别名/域名或本机IP-->

       <Alias>www.aaa.com</Alias>

        <Alias>www.bbb.com</Alias>

        <Alias>192.16.18.23</Alias>


         <Context path="" docBase="webapps/object1" />

<!--如果有多个工程可以加这里-->

         <Context path="/object2" docBase="webapps/object2" />

         <Context path="/object3" docBase="webapps/object3" />

</Host>

<Host name="localhost" appBase="server/webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false"></Host>

但是会这样后我们的tomcat管理页面又无法登陆了。并且访问工程要通过127.0.0.1访问。localhost将无法访问。

----------------------------------------------------------------------------------------------------------------------------------

刚刚解压版的Tomcat5.0.12,启动setup.bat后,通过浏览器访问:http://127.0.0.1:8080/admin

 

后续继续测试更新中……

 

在登录界面输入用户名 both 和密码 tomcat 后出现下面的错误提示:

HTTP Status 403 - Access to the requested resource has been denied

 

问题原因:

D:\Tomcat5.0\conf 目录下的

tomcat-users.xml 文件内容如下:

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
   <role rolename="tomcat"/>
   <role rolename="role1"/>
   <user username="tomcat" password="tomcat" roles="tomcat"/>
   <user username="role1" password="tomcat" roles="role1"/>
   <user username="both" password="tomcat" roles="tomcat,role1"/>
</tomcat-users>

问题修改:将tomcat-users.xml 文件内容改为

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
   <role rolename="tomcat"/>
   <role rolename="role1"/>
   <role rolename="manager"/>
   <role rolename="admin"/>

   <user username="admin" password="admin" roles="admin,manager"/>
   <user username="tomcat" password="tomcat" roles="tomcat"/>
   <user username="role1" password="tomcat" roles="role1"/>
   <user username="both" password="tomcat" roles="tomcat,role1"/> 
</tomcat-users>

重新启动Tomcat ,在登录时使用 用户名admin 密码 admin 登录即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值