1. Jar包
maven-->install
java -jar jar包名称
war包
不成功,按照下面 两步走,解决当前这个在外部tomcat没办法运行起来并访问的问题:
第一步:
新建一个SpringBootStartApplication 继承自 SpringBootServletInitializer
作用:因为在外部容器部署的话,就不能依赖于Application的main函数了,而是要以类似于web.xml文件配置的方式来启动Spring应用上下文,
此时我们需要在启动类中继承SpringBootServletInitializer并实现configure方法,这个类的作用与在web.xml中配置负责初始化Spring应用上下文的监听器作用类似
【注意】:这个新建的类,与springboot的启动类是同级的
将springboot内置的Tomcat依赖移除
<dependencies>
<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>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<!--thymeleaf 模板引擎依赖移除-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
添加对 servlet-api 的依赖 我是没用到
<!--<dependency>-->
<!--<groupId>org.apache.tomcat</groupId>-->
<!--<artifactId>tomcat-servlet-api</artifactId>-->
<!--<version>7.0.42</version>-->
<!--<scope>provided</scope>-->
<!--</dependency>-->
启动项目时发现 :(我使用tomcat7会出现该问题 ,替换为tomcat8 完美解决)
Caused by: java.lang.NoClassDefFoundError: javax/el/ELManager
tomcat提供的el-api 和项目里面的el-api.jar冲突;这时候你需要去找到自己本机上用的el-api的版本,copy到tomcat的lib目录下,覆盖原来的jar包
一般在idea或者eclipse的lib目录下,可以用全局搜索查找.
这个时候就可以正常交启动并访问了.