栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring Boot部署到Tomcat过程中遇到的问题汇总

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring Boot部署到Tomcat过程中遇到的问题汇总

前言

Spring Boot项目一般都是内嵌tomcat或者jetty服务器运行,很少用war包部署到外部的服务容器,即使放到linux中,一般也是直接启动Application类,但是有些时候我们需要部署到外部的服务器,这对于Spring Boot来说却有点麻烦

下面就记录下自己部署的第一个SpringBoot项目到Tomcat中遇到的问题,三个地方需要注意:头疼……

详细如下:

1、SpringBoot有自己内置Tomcat容器,所以要告诉它不使用内置容器,不指定Tomcat版本配置如下:

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

2、Application类需要如下改动,其中exclude是忽略数据库的注解(我没弄数据库):

@SpringBootApplication(exclude = { 
DataSourceAutoConfiguration.class, 
DataSourceTransactionManagerAutoConfiguration.class, HibernateJpaAutoConfiguration.class}) 
public class Application extends SpringBootServletInitializer { 
 @Override 
 protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 
 return application.sources(Application.class); 
 } 
 public static void main(String[] args) throws Exception { 
 SpringApplication.run(Application.class, args); 
 } 
} 

3、JDK版本要一直!我开始服务器用的jdk1.7,本地环境用的1.8,结果本地怎么调试运行都正常,服务器tomcat启动正常,jsp访问都正常,接口全部404,控制台也没有出现SpringBoot的标示!!!!研究了一整天……头疼……

我的代码:

pom.xml

 
 4.0.0 
 wechatServer 
 war 
 http://maven.apache.org 
  
  
 org.springframework.boot 
 spring-boot-starter-parent 
 1.4.0.RELEASE 
  
  
 UTF-8 
 1.8 
  
  
  
org.springframework.boot 
  spring-boot-starter-web 
   
  
  
org.springframework.boot 
  spring-boot-starter-tomcat 
  provided 
  
  
  javax.servlet 
  javax.servlet-api 
  
  
  mysql 
  mysql-connector-java 
  
  
org.springframework.boot 
  spring-boot-starter-jdbc 
  
  
  dom4j 
  dom4j 
  1.6.1 
  
  
com.thoughtworks.xstream 
  xstream 
  1.4.10 
  
  
org.springframework.boot 
  spring-boot-devtools 
  true 
  
  
  
  
  
   
   
org.apache.maven.plugins 
  maven-war-plugin 
  2.4 
   
${project.build.sourceEncoding} 
   true 
    
   wechatServer 
    
   ${start-class} 
   true 
true 
false 
   
   
  
  
 

Application类:

package wechatService.app; 
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; 
import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; 
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; 
import org.springframework.boot.builder.SpringApplicationBuilder; 
import org.springframework.boot.web.support.SpringBootServletInitializer; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RestController; 
@SpringBootApplication(exclude = { 
DataSourceAutoConfiguration.class, 
DataSourceTransactionManagerAutoConfiguration.class, HibernateJpaAutoConfiguration.class}) 
public class Application extends SpringBootServletInitializer { 
 @Override 
 protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 
 return application.sources(Application.class); 
 } 
 public static void main(String[] args) throws Exception { 
 SpringApplication.run(Application.class, args); 
 } 
 } 

Hello请求:

@RestController 
@RequestMapping 
public class LoginController { 
 @RequestMapping("/hello/{myName}") 
 String index(@PathVariable String myName) { 
 return "Hello "+myName+"!!!"; 
 } 
} 

application.properties我这里只配置了端口,然而部署到tomcat以后这里就不起作用了:

server.port = 80 

我的目录结构:

最后我的完整代码:http://xiazai.jb51.net/201803/yuanma/wechatServer(jb51.net).rar

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对考高分网的支持。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/141404.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号