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 &quot;%r&quot; %s %b" />

      </Host>
    </Engine>
  </Service>

 

6,部署后会遇到Tomcat请求区分大小写的问题

 可以在其<Context>(位于tomcat根目录下:conf/context.xml文件中)元素中增加“caseSensitive="false"”来使其不区分大小写

 

posted @ 2021-03-03 11:48  EasyCms-  阅读(795)  评论(0编辑  收藏  举报