春季启动项目一般都是内嵌tomcat或jetty服者务器运行,很少用战争包部署到外部的服务容器,即使放到linux中,一般也是直接启动应用程序类,但是有些时候我们需要部署到外部的服务器,这对于弹簧引导来说却有点麻烦
下面就记录下自己部署的第一个SpringBoot项目到Tomcat中遇到的问题,三个地方需要注意:头疼……
1, SpringBoot有自己内置Tomcat容器,所以要告诉它不使用内置容器,不指定Tomcat版本配置如下:
& lt; dependency> & lt; groupId> org.springframework.boot & lt; artifactId> spring-boot-starter-tomcat & lt; scope> provided & lt;/dependency>>之前2,应用类需要如下改动,其中排除是忽略数据库的注解(我没弄数据库):
@SpringBootApplication(排除={ DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration。类,HibernateJpaAutoConfiguration.class}) 公共类的应用程序扩展SpringBootServletInitializer { @Override 保护SpringApplicationBuilder配置(SpringApplicationBuilder应用程序){ 返回application.sources (Application.class); } 公共静态void main (String [] args){抛出异常 SpringApplication.run (Application.class, args); } }3, JDK版本要一直!我开始服务器用的jdk1.7,本地环境用的1.8,结果本地怎么调试运行都正常,服务器tomcat启动正常,jsp访问都正常,接口全部404年,控制台也没有出现SpringBoot的标示! ! ! !研究了一整天……头疼……
我的代码:
pom.xml
& lt;项目xmlns=" http://maven.apache.org/POM/4.0.0 " xmlns: xsi=" http://www.w3.org/2001/XMLSchema-instance " xsi: schemaLocation=" http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd”比; & lt; modelVersion> 4.0.0 & lt; artifactId> wechatServer & lt; packaging> war & lt; url> http://maven.apache.org</url> & lt; !——从春天继承默认引导——比; & lt; parent> & lt; groupId> org.springframework.boot & lt; artifactId> spring-boot-starter-parent & lt; version> 1.4.0.RELEASE & lt;/parent> & lt; properties> & lt; project.build.sourceEncoding> UTF-8 & lt; java.version> 1.8 & lt;/java.version> & lt;/properties> & lt; dependencies> & lt; dependency> & lt; groupId> org.springframework.boot & lt; artifactId> spring-boot-starter-web & lt; !——排除内置容器,排除内置容器导出成战争包可以让外部容器运行spring-boot项目——比; & lt;/dependency> & lt; dependency> & lt; groupId> org.springframework.boot & lt; artifactId> spring-boot-starter-tomcat & lt; scope> provided & lt;/dependency> & lt; dependency> & lt; groupId> javax.servlet & lt; artifactId> javax.servlet-api & lt;/dependency> & lt; dependency> & lt; groupId> mysql & lt; artifactId> mysql-connector-java & lt;/dependency> & lt; dependency> & lt; groupId> org.springframework.boot & lt; artifactId> spring-boot-starter-jdbc & lt;/dependency> & lt; dependency> & lt; groupId> dom4j & lt; artifactId> dom4j & lt; version> 1.6.1 & lt;/dependency> & lt; dependency> & lt; groupId> com.thoughtworks.xstream & lt; artifactId> xstream & lt; version> 1.4.10 & lt;/dependency> & lt; dependency> & lt; groupId> org.springframework.boot & lt; artifactId> spring-boot-devtools & lt; optional> true & lt; !——可?true,依赖不会传递,该项目依赖devtools;之后依赖myboot项目的项目如果想要使用devtools,需要重新引入——比; & lt;/dependency> & lt;/dependencies> & lt; !——修改打包设置——比; & lt; build> & lt; plugins> & lt; !- & lt; plugin>& lt; groupId> org.springframework.boot& lt; artifactId> spring-boot-maven-plugin & lt;/plugin>——比; & lt; plugin> & lt; groupId> org.apache.maven.plugins & lt; artifactId> maven-war-plugin弹簧引导部署到Tomcat过程中遇到的问题汇总