美文网首页
springboot war包 在tomcat中运行启动两次的解

springboot war包 在tomcat中运行启动两次的解

作者: fuweiwei | 来源:发表于2019-01-10 15:00 被阅读0次

tomcat配置条件

1、首先进入tomcat的conf文件夹,对server.xml配置端口号,两个原则,一个是当前的端口号没有被其他的锁占用,另一个对外暴露的服务的端口号和springboot对外要暴露的端口号是一致的。

2、移除tomcat的webapps下面的相关的自带的项目文件

springboot项目注意事项

1、springboot自带的tomcat需要在编译的时候移除,maven提供如下的一种方法:

      <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>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>

另外需要在pom文件中加入插件依赖

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

项目需要打成war包的形式

<packaging>war</packaging>  

2、Springboot项目启动的类不变,如下的一种:

@SpringBootApplication
public class ZyzhBackStageWebApplication {

    public static void main(String[] args) {
        SpringApplication.run(ZyzhBackStageWebApplication.class, args);
    }

}

同时创建另外一个类

import org.springframework.boot.builder.SpringApplicationBuilder;

import org.springframework.boot.web.support.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(ZyzhBackStageWebApplication.class);
    }

}

相关文章

网友评论

      本文标题:springboot war包 在tomcat中运行启动两次的解

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