记录一次坑爹的Tomcat部署

记录一次坑爹的Tomcat部署

- 0x00 前言
最近在做项目的时候, 为了API项目和前端配合, 所以决定用Jenkins做持续集成并部署到Tomcat, 然后再搭建一个Nginx做前端服务器。安装Jenkins、安装Deploy插件、创建项目、配置Subversion、配置Maven、配置Deploy… 一切顺利, 看到打了war成功的放到Tomcat上面啦! WTF? 两个WAR包, 第一个WAR包能正常启动, 第二个WAR包启动不起来?

ERROR: Build step failed with exception
org.codehaus.cargo.container.ContainerException: Failed to deploy 
.......
Caused by: org.codehaus.cargo.container.tomcat.internal.TomcatManagerException: FAIL - Deployed application at context path /restapi-operate but context failed to start
......
Build step 'Deploy war/ear to a container' marked build as failure
Finished: FAILURE



- 0x01 解决过程
难道还需要再配置context? 恩, 果然, 并没什么卵用。
于是乎我重启了下tomcat,发现在tomcat也是只能启动一个,但是可以进到Tomcat的manager点击star按钮启动第二个war包。嗯, 大概知道原因。
好吧,原来啊,我是将2个WAR包部署到Tomcat上的,然鹅我并没有在这两个项目中的web.xml配置

<context-param>
    <param-name>webAppRootKey</param-name>
    <param-value>operation.root</param-value>
</context-param>

如果我不配置webAppRootKey, 那么问题来了, 这个webAppRootkey它缺省值是webapp.root, 所以呢,我两个项目的都是webapp.root,导致冲突了, 所以只启动了一个。


- 0x02 解决方案
给两个项目的web.xml文件分别配置上webAppRootKey,但是param-name的值不能一样,也不要是webapp.root


1. 项目一的web.xml增加配置

<context-param>
    <param-name>webAppRootKey</param-name>
    <param-value>operation.root</param-value>
</context-param>



2. 项目二的web.xml增加配置

<context-param>
    <param-name>webAppRootKey</param-name>
    <param-value>supplier.root</param-value>
</context-param>



3. 提交代码到svn
4. Jenkins重新对两个项目进行构建。
5. 看到Jenkins构建成功,并部署到Tomcat成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值