将SpringBoot部署到Tomcat下

需要资源:

SpringBoot项目,Tomcat

注意内容:使用的是SpringBoot2.0,在部署的时候需要el-api.jar的版本号为3.0。否则在启动的时候会出现以下错误。推荐使用tomcat8及以上版本(当然也可以替换tomcat中的el-api.jar为3.0版本的)

Caused by: java.lang.NoClassDefFoundError: javax/el/ELManager

第一步:修改pom.xml

因为我们要使用自己的web容器,所以,要排除掉SpringBoot中的自带容器依赖


			org.springframework.boot
			spring-boot-starter-web
			
				
					org.springframework.boot
					spring-boot-starter-tomcat
				
			
		

另外还需要添加servlet-api.jar在编译测试阶段使用。不过个人推荐可以使用javaee-api.jar(里面包含了servlet,el,jsp等所需的包)

注意:version 5的group是javaee 。version为5以上的group是javax


		    javax
		    javaee-api
		    7.0
		    provided
		


第二步:注册入口类

基于servlet3.0,已经可以不需要web.xml了。spring为我们提供了WebApplicationInitializer接口,由servlet3.0自动引导。

我们继承实现了WebApplicationInitializer接口的的SpringBootServletInitializer,使用其configure来加载SpringBoot的入口配置。

public class SpringBootStartApplication extends SpringBootServletInitializer {

	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
		// TODO Auto-generated method stub
		return builder.sources(ApplicationEntrance.class);
	}

	
}

第三步:打war包,放入Tomcat下执行

如果在eclipse中打包war的话执行maven install

在eclipse中也可以直接发布到tomcat中进行运行。

也可以到项目目录执行mvn clean package 打包成war包,然后放到tomcat下运行

你可能感兴趣的:(JAVA,SpringBoot)