自动部署中Tomcat被异常卡死的处理办法

在开发一套Java系统时,利用Jenkins进行自动打包部署,遇到Tomcat在远程部署时异常卡死的问题。经过分析,发现原因是Tomcat启动时启动了Quartz调度线程,关闭时未能正确停止这些线程,导致部署失败。为解决此问题,可以将Quartz的主线程启动改为独立进程,避免影响Tomcat的启动和关闭。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在工作中自开发了一套java系统,这个系统的功能是通过quartz定时生成报表,用户通过登录系统来查看报表。IBM公司也有这样一个系统。
在开发这个系统的时候为了满足快速迭代的要求,需要实现自动打包部署的功能,因为我用jenkins作为部署平台来实现。jenkins按照如下方法思路进行:

  1. 先用jenkins自带功能到代码服务器抓取代码。
  2. 调用maven进行编译。
  3. 调用ant脚本进行备份部署包和修改部署包的名称。
  4. 使用jenkins自带功能部署到远程tomcat服务器上。

但是每次在部署远程tomcat服务器时总是出现如下问题:

Deploying C:\Users\Administrator\.jenkins\workspace\PLMReport_TST\PLMReport\target\Report.war to container Tomcat 7.x Remote
  Redeploying [C:\Users\Administrator\.jenkins\workspace\PLMReport_TST\PLMReport\target\Report.war]
  Undeploying [C:\Users\Administrator\.jenkins\workspace\PLMReport_TST\PLMReport\target\Report.war]
ERROR: Build step failed with exception
org.codehaus.cargo.container.ContainerException: Failed to undeploy [C:\Users\Administrator\.jenkins\workspace\PLMReport_TST\PLMReport\target\Report.war]
    at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.undeploy(AbstractTomcatManagerDeployer.java:140)
    at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:178)
    at hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:73)
    at hudson.plugins.deploy.CargoContainerAdapter$1.invoke(CargoContainerAdapter.java:116)
    at hudson.plugins.deploy.CargoContainerAdapter$1.invoke(CargoContainerAda
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值