SpringBoot 外部tomcat 打包成war包部署
项目部署前先填个坑,就是tomcat7.0部署SpringBoot的war包会出现一个错误
error creating bean with name 'defaultvalidator' defined in class path resource
所以部署前少填点坑将tomcat升级到8版本以上
接下来就修改我们Spring boot项目里面的启动类和maven依赖了
POM.XML在里面添加 <finalName>打包后war包的名称</finalName>
添加打包类型<packaging>war</packaging>
接下来是比较关键的依赖包和排除依赖包
<!-- 添加外部tomcat的servlet-api服务-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
移除tomcat依赖或者将tomcat依赖scope改为provide移除tomcat依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 移除嵌入式tomcat插件 -->
<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>
现在到我们的启动类了 我这里启动类名:Application
继承SpringBootServletInitializer类实现configure方法
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Application.class);
}
}
接下来打包部署
将项目的maven 先 mvn clean 然后 mvn install 一下打包
打包成功在项目目录下就出现一个target文件其次找到下面的war包
把war拷贝到我们的外部tomcat文件的webapps目录下
因为我的tomcat一直是启动状态的拷贝下去的war包就会直接被编译
启动tomcat 访问项目
startup
我的tomcat环境变量配好的所以直接cmd里
启动后没有报错下面显示了tomcat的端口和关闭端口
还没有评论,来说两句吧...