祖传老项目打war包tomcat部署-手把手教你排错

今天准备把公司的祖传老项目(内部管理系统)重新部署一下
原先的部署方法有问题:修改项目代码只可修改对应的class文件,不可整个项目打包部署
为何?因为原先的部署是tomcat读取文件夹,而文件夹里面的配置文件又跟工程里的不一样,又没有指定读服务器的配置文件。
这次部署是简单处理:启动脚本里面加了一些复制生产环境配置文件到项目的操作,每次版本更新替换war包后执行启动脚本就可以。
运行第一天:没啥问题
第二天:隔壁部门反映统计数据重复
查看日志文件:发现当天的日志文件居然没有任何项目运行记录
只能去tomcat的日志文件里面看了

经排查:定时任务重复执行
在这里插入图片描述
看了调度器配置,发现木有问题~
看了代码,也木有问题~

那么就跟项目无关了,是这次部署的问题!
查看web.xml
上下文没有重复加载~

哪里的问题?我也不知道hhhh
一顿摸索,发现在滚动的日志文件里(也就是昨天的日志文件)看到今天的日志数据
oh 这是什么玩意!
看了下日志配置:log4j.properties
木有问题

百度一下:log4j日志滚动错乱
tomat重复加载多个java程序?
原贴在这里 https://blog.csdn.net/lmmzsn/article/details/77990538
发现新大陆
查看一下服务器配置文件 server.xml
在这里插入图片描述这样会重复的话,那我就把context删了~
发现:诶,访问过去是tomcat的页面
在这里插入图片描述
思考了一下:哦,默认是加载webapps下面的项目,但是访问路径应该加上自己项目文件夹的名称才可以
试试
在这里插入图片描述
在这里插入图片描述
哦哟,没问题
那要替换localhost咋办呀,不能改路径后通知全公司的人都改访问路径呀

思考:1.原先能替换localhost,删掉不行。说明是context里面的path来定义访问路径
2.不加context,appbase为webapps时,访问时加项目名就能访问到,说明加载了项目。而加了context能直接访问到,也是说明context这一行也加载了项目。说明大神说的没错,项目放webapps + context指向项目 就重复加载了
那要如何替换localhost而只加载一次呢?
简单~替换localhost,必须保留context。那就加载context不加载webapps,那就把appbase设置为空
改为
在这里插入图片描述

启动~~~~起飞
完美解决

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值