国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開發(fā) > Java > 正文

Spring Boot部署到Tomcat過程中遇到的問題匯總

2024-07-14 08:40:09
字體:
供稿:網(wǎng)友

前言

Spring Boot項(xiàng)目一般都是內(nèi)嵌tomcat或者jetty服務(wù)器運(yùn)行,很少用war包部署到外部的服務(wù)容器,即使放到linux中,一般也是直接啟動(dòng)Application類,但是有些時(shí)候我們需要部署到外部的服務(wù)器,這對(duì)于Spring Boot來說卻有點(diǎn)麻煩

下面就記錄下自己部署的第一個(gè)SpringBoot項(xiàng)目到Tomcat中遇到的問題,三個(gè)地方需要注意:頭疼……

詳細(xì)如下:

1、SpringBoot有自己內(nèi)置Tomcat容器,所以要告訴它不使用內(nèi)置容器,不指定Tomcat版本配置如下:

<dependency> <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-starter-tomcat</artifactId>   <scope>provided</scope>  </dependency> 

2、Application類需要如下改動(dòng),其中exclude是忽略數(shù)據(jù)庫(kù)的注解(我沒弄數(shù)據(jù)庫(kù)):

@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版本要一直!我開始服務(wù)器用的jdk1.7,本地環(huán)境用的1.8,結(jié)果本地怎么調(diào)試運(yùn)行都正常,服務(wù)器tomcat啟動(dòng)正常,jsp訪問都正常,接口全部404,控制臺(tái)也沒有出現(xiàn)SpringBoot的標(biāo)示!!!!研究了一整天……頭疼……

我的代碼:

pom.xml

<project 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">  <modelVersion>4.0.0</modelVersion>  <artifactId>wechatServer</artifactId>  <packaging>war</packaging>  <url>http://maven.apache.org</url>  <!-- Inherit defaults from Spring Boot -->  <parent>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-parent</artifactId>  <version>1.4.0.RELEASE</version>  </parent>  <properties>  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  <java.version>1.8</java.version>  </properties>  <dependencies>  <dependency> <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-starter-web</artifactId>   <!-- 排除內(nèi)置容器,排除內(nèi)置容器導(dǎo)出成war包可以讓外部容器運(yùn)行spring-boot項(xiàng)目 -->  </dependency>  <dependency> <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-starter-tomcat</artifactId>   <scope>provided</scope>  </dependency>  <dependency>   <groupId>javax.servlet</groupId>   <artifactId>javax.servlet-api</artifactId>  </dependency>  <dependency>   <groupId>mysql</groupId>   <artifactId>mysql-connector-java</artifactId>  </dependency>  <dependency> <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-starter-jdbc</artifactId>  </dependency>  <dependency>   <groupId>dom4j</groupId>   <artifactId>dom4j</artifactId>   <version>1.6.1</version>  </dependency>  <dependency> <groupId>com.thoughtworks.xstream</groupId>   <artifactId>xstream</artifactId>   <version>1.4.10</version>  </dependency>  <dependency> <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-devtools</artifactId>   <optional>true</optional><!-- optional=true,依賴不會(huì)傳遞,該項(xiàng)目依賴devtools;之后依賴myboot項(xiàng)目的項(xiàng)目如果想要使用devtools,需要重新引入 -->  </dependency>  </dependencies>  <!--修改打包設(shè)置 -->  <build>  <plugins>   <!-- <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId>   </plugin> -->   <plugin> <groupId>org.apache.maven.plugins</groupId>   <artifactId>maven-war-plugin</artifactId>   <version>2.4</version>   <configuration> <encoding>${project.build.sourceEncoding}</encoding>    <skipTests>true</skipTests>    <!-- 打成war包時(shí)名子 -->    <warName>wechatServer</warName>    <!-- mave時(shí)啟用的main路徑(因?yàn)槠渌锩鏈y(cè)試時(shí)也加了main函數(shù)) -->    <mainClass>${start-class}</mainClass>    <skip>true</skip><!-- 跳過測(cè)試 --> <testFailureIgnore>true</testFailureIgnore> <failOnMissingWebXml>false</failOnMissingWebXml>   </configuration>   </plugin>  </plugins>  </build> </project> 

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請(qǐng)求:

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

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

server.port = 80 

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)VeVb武林網(wǎng)的支持。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JAVA教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 南昌县| 娱乐| 祁连县| 海宁市| 两当县| 唐海县| 柳州市| 明水县| 铅山县| 新和县| 道孚县| 天台县| 永宁县| 永修县| 会宁县| 慈利县| 万荣县| 宣城市| 安泽县| 洪湖市| 嘉定区| 临泽县| 开化县| 青浦区| 红安县| 凤冈县| 崇礼县| 若尔盖县| 韶山市| 巧家县| 施甸县| 永康市| 双牌县| 吉木乃县| 隆昌县| 莆田市| 囊谦县| 都匀市| 伽师县| 南安市| 南汇区|