美文网首页
tomcat部署war包

tomcat部署war包

作者: 夜月河色 | 来源:发表于2020-05-31 23:23 被阅读0次

    一、下载tomcat8.5.55 的tar.gz包,解压即可。

    tar -zxvf apache-tomcat-7.0.75.tar.gz
    

    二、通过idea、maven打war包

    1、在pom.xml中设置打包方式

    <packaging>war</packaging>
    

    2、在pom.xml中排除内嵌tomcat,并引入tomcat,<scope>provided</scope>只在编译测试时使用,打了war包后不会与外置tomcat冲突。

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-tomcat</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
                <scope>provided</scope>
            </dependency>
    

    3、启动类继承SpringBootServletInitializer

    //继承SpringBootServletInitializer,用于部署到外部容器
    public class MyApplication extends SpringBootServletInitializer{
        private final static Logger logger= LoggerFactory.getLogger(EaphmApplication.class);
        public static void main(String[] args) {
            SpringApplication.run(MyApplication.class, args);
        }
    
        //继承SpringBootServletInitializer,用于部署到外部容器
        @Override
        public SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
            return builder.sources(MyApplication.class);
        }
    }
    

    4、点击maven的package,打war包

    maven打war包

    三、部署

    1、启动tomcat

    sh /opt/apache-tomcat-8.5.55/bin/startup.sh
    

    2、将war包上传到/opt/apache-tomcat-8.5.55/webapps,tomcat会自动解压,将war包放入解压出的文件夹中。

    3、将/opt/apache-tomcat-8.5.55/webapps/ROOT文件夹修改名称为tomcatIndex。

    4、将war解压出的文件夹名称改为ROOT,完成ROOT文件夹的替换。

    完成!访问localhost:8080即可。

    四、需要注意的地方

    1、项目中有多个类继承了SpringBootServletInitializer

    会导致tomcat启动时,日志文件中一直报错:No SpringApplication sources have been defined. Either override the configur,这时tomcat虽然部署了项目,但无法完成项目加载,项目是不可用的。

    2、代码中,如果主线程陷入死循环,访问tomcat的manager页面或者任何一个请求,都会处于等待状态,所有项目都无法完成部署。

    相关文章

      网友评论

          本文标题:tomcat部署war包

          本文链接:https://www.haomeiwen.com/subject/oajdzhtx.html