• intellij idea打包并部署到外部的tomcat


    一、将项目打包成war格式,修改pom.xml

    1、在其中添加下列代码

    <packaging>war</packaging>

    2、检查是否有这两个插件, maven-war-plugin 和 spring-boot-maven-plugin

      <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <configuration>
                        <excludes>
                            <exclude>
                                <groupId>org.projectlombok</groupId>
                                <artifactId>lombok</artifactId>
                            </exclude>
                        </excludes>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>3.3.1</version>
                </plugin>
            </plugins>
    <!--        打包成的项目名-->
            <finalName>tomcattest</finalName>
        </build>

    3、点击右侧的package打包成 war 包,在项目的target目录可以看到生成的war包

    4、打开cmd,到war 包所在目录 运行命令,项目可以正常启动并能成功访问。

    java -jar  tomcattest.war

     

    5.发布到外部的tomcat

      把tomcattest.war放到tomcat下的webapp下,重启tomcat,再次访问发现访问不到,报404错误。

     6、解决当前这个在外部tomcat没办法运行起来并访问的问题,方法是修改启动类。

      让项目启动类SpringBootStartApplication 继承自 SpringBootServletInitializer

        说明:

         A.在外部容器部署的话,不能依赖于Application的main函数

           B.在启动类中继承SpringBootServletInitializer并实现configure方法,以类似于web.xml文件配置的方式来启动Spring应用上下文

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.builder.SpringApplicationBuilder;
    import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
    
    @SpringBootApplication
    public class TomcattestApplication extends SpringBootServletInitializer {
        @Override
        public SpringApplicationBuilder configure(SpringApplicationBuilder applicationBuilder) {
            return applicationBuilder.sources(TomcattestApplication.class);
        }
    
        public static void main(String[] args) {
            SpringApplication.run(TomcattestApplication.class, args);
        }
    
    }

    7、再次打包发布到外部的tomcat。直接访问:localhost:8080/test,即:ip:端口/项目名称,这里的端口是外部tomcat配置的端口,项目名称是war包的名称,

    一定注意这里访问的端口是8080,也就是外部tomcat设置的端口。而不是项目,application.yml中配置的server.port。

     8、完结散花!

    参考:

    https://blog.csdn.net/weixin_34067102/article/details/86003918

    IntelliJ IDEA Sringboot 项目部署到外部Tomcat服务器 - 南下玩技术 - 博客园 (cnblogs.com)

  • 相关阅读:
    在esx上 docker的网络桥接
    docker 配置桥接网络
    docker 配置桥接网络
    perl 创建包
    perl 创建包
    perl 一个简单的面向对象的例子
    perl 一个简单的面向对象的例子
    perl 对象 bless 引用
    【技术角度看问题之一】ARM到底是个啥?
    【nodejs原理&源码赏析(3)】欣赏手术级的原型链加工艺术
  • 原文地址:https://www.cnblogs.com/dragon-lan/p/15209541.html
Copyright © 2020-2023  润新知