欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot打成war包在tomcat或wildfly下運行的方法

 更新時間:2019年11月22日 10:38:46   作者:二師兄-公眾號-程序新視界  
這篇文章主要介紹了SpringBoot打成war包在tomcat或wildfly下運行的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下

springboot默認的打包方式為jar包,jar包的有優(yōu)點是不需要更改的配置,并且內嵌了tomcat,如果打成jar包直接可以丟到docker中運行測試。但是考慮到前端代碼只能打成war包,因此干脆也將后端代碼打成war包和前端的代碼一起放在tomcat容器中的webapps中運行就好了。

SpringBoot打包形式

默認情況下,創(chuàng)建的SpringBoot項目是按照jar包形式來進行打包的。同時,內置了tomcat的容器。

那么,此時如果想讓springboot打包成war包,并部署到wildfly等容器,該如何處理?

下面將從創(chuàng)建項目開始逐一講解。

創(chuàng)建項目

創(chuàng)建項目沒有什么難點,使用idea工具創(chuàng)建一個簡單的maven項目即可,如果你的項目已經(jīng)是springboot項目,想要修改為war包形式,對照修改即可。

修改pom.xml配置

創(chuàng)建項目之后,修改pom.xml文件,添加parent標簽。

<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.1.5.RELEASE</version>
  <relativePath/>
</parent>

如果原來是springboot項目,則已經(jīng)包含了,不用修改。

pom.xml中設置打包方式為war。

<packaging>war</packaging>

添加或修改dependency配置,如下:

<dependencies>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
  </dependency>
  <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>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
  </dependency>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
  </dependency>
</dependencies>

其中在spring-boot-starter-web中需要排除tomcat的依賴。同時,添加servlet-api的依賴。注意這里添加的依賴為Servlet2.5。

在build中使用如下插件進行打包。

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-war-plugin</artifactId>
      <version>2.6</version>
      <configuration>
        <failOnMissingWebXml>false</failOnMissingWebXml>
      </configuration>
    </plugin>
  </plugins>
</build>

啟動main方法

如果已經(jīng)存在啟動的main方法,則讓main方法繼承SpringBootServletInitializer,并實現(xiàn)其方法即可。如果是新創(chuàng)建項目,則直接在頂級目錄創(chuàng)建SpringBootApp(啟動類),然后啟動diam如下。

@SpringBootApplication
public class SpringBootApp extends SpringBootServletInitializer {
 public static void main(String[] args) {
 SpringApplication.run(SpringBootApp.class, args);
 }
 @Override
 protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
 return builder.sources(SpringBootApp.class);
 }
}

打包

通過maven命令執(zhí)行package打包即可,在target目錄下即可生成war包。

至于tomcat和wildfly的部署,都可將war包放置于對應的目錄下啟動服務即可。

異常情況

如果在啟動時報如類似如下異常(提示缺少web.xml):

Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode)

注意檢查pom文件打包插件和是否排除了tomcat的問題,核查上面的打包插件是否正確。

問題的原因是:springboot項目中引用了依賴包spring-boot-starter-web。該包中引用的spring-boot-starter-tomcat里包含了tomcat嵌入式servlet容器,其不同版本實現(xiàn)的是不同的servlet版本規(guī)范。

Servlet/JSP版本2.5/2.1支持Tomcat的版本為6.0.x,最低java版本為1.5。Servlet/JSP版本3.0/2.2支持Tomcat的版本為7.0.x,最低java版本為1.6。

由于上面使用了Servlet2.5,當沒有web.xml文件時會出現(xiàn)上面的異常。

解決方式一:當Servlet版本小于3時,使用創(chuàng)建/src/main/webapp/WEB-INF/web.xml文件。

解決方式二:在pom.xml的build下添加maven-war-plugin插件。并設置failOnMissingWebXml為false。

總結

以上所述是小編給大家介紹的SpringBoot打成war包在tomcat或wildfly下運行的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

相關文章

  • 5分鐘搞懂java注解@Annotation的具體使用

    5分鐘搞懂java注解@Annotation的具體使用

    這篇文章主要介紹了5分鐘搞懂java注解@Annotation的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • java可變參數(shù)使用示例

    java可變參數(shù)使用示例

    這篇文章主要介紹了java可變參數(shù)使用示例,需要的朋友可以參考下
    2014-04-04
  • springboot 整合fluent mybatis的過程,看這篇夠了

    springboot 整合fluent mybatis的過程,看這篇夠了

    這篇文章主要介紹了springboot 整合fluent mybatis的過程,配置數(shù)據(jù)庫連接創(chuàng)建數(shù)據(jù)庫的詳細代碼,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2021-08-08
  • java枚舉的使用示例

    java枚舉的使用示例

    我們在學習編程語言的時候都學過枚舉,現(xiàn)在就具體來看看java中的枚舉的使用
    2013-12-12
  • Java的IO流實現(xiàn)文件和文件夾的復制

    Java的IO流實現(xiàn)文件和文件夾的復制

    這篇文章主要為大家詳細介紹了Java的IO流實現(xiàn)文件和文件夾的復制,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • 詳解處理Java中的大對象的方法

    詳解處理Java中的大對象的方法

    本文我們將講解一下對于“大對象”的優(yōu)化。這里的“大對象”,是一個泛化概念,它可能存放在?JVM?中,也可能正在網(wǎng)絡上傳輸,也可能存在于數(shù)據(jù)庫中,快跟隨小編一起學習一下
    2022-04-04
  • Spring動態(tài)代理實現(xiàn)日志功能詳解

    Spring動態(tài)代理實現(xiàn)日志功能詳解

    這篇文章主要為大家詳細介紹了Spring動態(tài)代理實現(xiàn)日志功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • java 中二分法查找的應用實例

    java 中二分法查找的應用實例

    這篇文章主要介紹了java 中二分法查找的應用實例的相關資料,希望通過本文大家能掌握二分法的使用方法,需要的朋友可以參考下
    2017-09-09
  • SpringBoot利用validation實現(xiàn)優(yōu)雅的校驗參數(shù)

    SpringBoot利用validation實現(xiàn)優(yōu)雅的校驗參數(shù)

    數(shù)據(jù)的校驗是交互式網(wǎng)站一個不可或缺的功能,如果數(shù)據(jù)庫中出現(xiàn)一個非法的郵箱格式,會讓運維人員頭疼不已。本文將介紹如何利用validation來對數(shù)據(jù)進行校驗,感興趣的可以跟隨小編一起學習一下
    2022-06-06
  • JAVA加密算法實密鑰一致協(xié)議代碼示例

    JAVA加密算法實密鑰一致協(xié)議代碼示例

    這篇文章主要介紹了JAVA加密算法實密鑰一致協(xié)議代碼示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10

最新評論