War包方式打包部署
1.声明打包方式为War包
<packaging>war</packaging>
2.声明使用外部的Tomcat服务器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
3.提供Spring Boot启动的Servlet初始化器
主程序启动类继承SpringBootServletInitializer类并实现configure()方法,在configure()方法中,sources(Chapter05Application.class)方法的首个参数必须是项目主程序启动类。
需要说明的是,为Spring Boot提供启动的Servlet初始化器SpringBootServletInitializer的典型的做法就是让主程序启动类继承SpringBootServletInitializer类并实现configure()方法;除此之外,还可以在项目中单独提供一个继承SpringBootServletInitializer的子类,并实现configure()方法。
public class MyChapter05Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(MyChapter05Application.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(MyChapter05Application.class);
}
}
4.使用eclipse进行打包
package命令即可,假如遇到failOnMissingWebXml,pom中添加如下插件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
5.War包目录结构
6.以war方式打包失败[webxml attribute is required]解决方案
7.War包方式部署
将打包好的War包拷贝到Tomcat安装目录下的webapps目录中,执行Tomcat安装目录下bin目录中的startup.bat命令启动War包项目
8.测试
使用外部Tomcat部署的项目进行访问时,必须加上项目名称(打成war包后的项目全名)
http://localhost:8080/MyChapter05-0.0.1-SNAPSHOT/toLoginPage