一个Tomcat部署多个项目引起的冲突
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个Tomcat部署多个项目引起的冲突相关的知识,希望对你有一定的参考价值。
参考技术A 项目部署在windows服务器上,(真心不造经济学院为什么要买一台windows服务器)在服务器上部署多个项目的时候,由于第二个项目自己偷懒就复制了第一个项目的web.xml,没想到连webAppRootKey也一起复制过去了,于是造成冲突。
查看日志:Web app root system property already set to different value: 'app1.root' = [D:\apache\apache-tomcat-8.5.12-windows-x64\webapps\teachers\] instead of [D:\apache\apache-tomcat-8.5.12-windows-x64\webapps\teachers_files\] - Choose unique values for the 'webAppRootKey' context-param in your web.xml files!
不得不说日志是个好东西,记录了项目的行为
另外项目的webAppRootKey就不复制了,他们的值都是相同的。
解决方法:因此两个项目中paran-value应该是不一样的。
如何在一个Tomcat 中部署多个项目
通常情况下我们部署项目时是一个Tomcat 中部署一个项目,但是有时也需要在一个tomcat中部署多个应用。如何实现呢?我简单的记录一下,方便日后查阅。
1 打开tomcat目录,修改配置文件server.xml。新增如下内容:
<!-- 新增一个项目--> <Service name="Catalina"> <Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="9543" /> <!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8009" protocol="AJP/1.3" redirectPort="9543" /> <Engine name="Catalina" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="localhost" appBase="webapps_8081" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> <!--<Context path="/route" reloadable="true" docBase="D:/tomcat7/webapps2"/>--> </Host> </Engine> </Service>
2 在tomcat的目录中创建文件夹 webapps2,该文件夹存放的就是新增的项目。这里需要注意项目的路径和端口号不能和 前一个项目重复。
3 启动tomcat后测试下是否两个项目都能够访问,如果两个项目都能够访问的话,那就说明ok了。
在一个tomcat中部署多个项目有优点,也有缺点。如果多个项目中的一个项目启动时出现错误的话,会导致其它项目也不能正常启动,当项目太多时,错误的排除比较麻烦,测试也比较麻烦。所以还是需要我们根据需要选择合适的部署方式。
本文出自 “随便写写” 博客,请务必保留此出处http://7156680.blog.51cto.com/7146680/1887084
以上是关于一个Tomcat部署多个项目引起的冲突的主要内容,如果未能解决你的问题,请参考以下文章
一个tomcat下部署多个项目或一个服务器部署多个tomcat