Tomcat部署springboot项目
Tomcat版本 9.0
springboot版本 2.4
springboot现在默认内置了Tomcat,但是为了方便部署多项目,需要将SpringBoot打包成war包,这样可以在一个Tomcat下部署多个站点
1,增加EasyCmsServletInitializer类
public class EasyCmsServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(EasycmsBootApplication.class); } }
2,修改pom.xml配置 ,增加war包格式
<groupId>com.easycms</groupId> <artifactId>easycms-boot</artifactId> <version>1.0.0</version> <packaging>war</packaging> <!-- 打包war使用-->
3,去除内置Tomcat
<!-- 打包war使用,移除自带的Tomcat插件之后会报错,加入下面的依赖 --> <!-- <dependency>--> <!-- <groupId>javax.servlet</groupId>--> <!-- <artifactId>javax.servlet-api</artifactId>--> <!-- <scope>provided</scope>--> <!-- </dependency>--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
4,打包
使用命名
mvn clean package -Dmaven.test.skip=true
或者IDEA的maven菜单打包
5,新建Tomcat配置
1, 新建站点文件夹 webappsCMS
2,复制 conf/Catalina文件夹的副本,命名为CatalinaCMS
3,配置conf/server.xml 复制Service.xml节点作为新站点的配置
配置内容如下
<Service name="CatalinaCMS"> <Connector port="7070" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Engine name="CatalinaCMS" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <Host name="localhost" appBase="webappsCMS" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="easycms-boot-1.0.0" debug="0" reloadable="true" /> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host> </Engine> </Service>
6,部署后会遇到Tomcat请求区分大小写的问题
可以在其<Context>(位于tomcat根目录下:conf/context.xml文件中)元素中增加“caseSensitive="false"”来使其不区分大小写
记忆力下降,日常日志