日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring靴子战争包装

發(fā)布時間:2023/12/3 javascript 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring靴子战争包装 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Spring Boot建議在構建期間使用嵌入式容器(tomcat或碼頭)創(chuàng)建一個可執(zhí)行jar,并在運行時將此可執(zhí)行jar作為獨立進程使用。 但是,通常將應用程序部署到外部容器上是很常見的,Spring Boot提供了打包應用程序的方式,專門針對此類需求。

我在這里的重點不是重復關于創(chuàng)建war構件的已經(jīng)詳細的Spring Boot 指導 ,而是在測試創(chuàng)建的文件以查看它是否可以在獨立容器上可靠地工作。 我最近在通過Spring Boot項目創(chuàng)建戰(zhàn)爭并將其部署在Jetty上時遇到了一個問題,這實際上是從該經(jīng)驗中學到的東西。

測試戰(zhàn)爭能否可靠進行的最佳方法是簡單地使用jetty-maven和/或tomcat maven插件 ,并在pom.xml文件中添加以下條目:

<plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version> </plugin> <plugin><groupId>org.eclipse.jetty</groupId><artifactId>jetty-maven-plugin</artifactId><version>9.2.3.v20140905</version> </plugin>

安裝好插件后,使用tomcat插件開始戰(zhàn)爭:

mvn tomcat7:run

并帶有碼頭插件:

mvn jetty:run

如果創(chuàng)建戰(zhàn)爭的方式存在任何問題,則應在啟動時使用這些容器來解決。 例如,如果我要保留嵌入式tomcat依賴項:

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

然后在啟動maven tomcat插件時,將出現(xiàn)以下錯誤:

java.lang.ClassCastException: org.springframework.web.SpringServletContainerInitializer cannot be cast to javax.servlet.ServletContainerInitializer

指示servlet jar與war文件打包在一起的指示,可以通過指定maven依賴項中提供的范圍來解決:

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

為什么同時使用jetty和tomcat插件,原因是我看到了行為上的差異,特別是在websocket支持下,jetty作為運行時,而不是tomcat。 因此,請考慮通過以下方式拉出的websocket依賴項:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dependency>

這在使用jetty運行時啟動時給了我一個錯誤,并且解決方法是再次標記提供的基礎tomcat依賴項,并用以下內容替換上面的內容:

<dependency><groupId>org.springframework</groupId><artifactId>spring-websocket</artifactId> </dependency> <dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-websocket</artifactId><scope>provided</scope> </dependency> <dependency><groupId>org.springframework</groupId><artifactId>spring-messaging</artifactId> </dependency>

因此,總而言之,一種驗證為Spring-boot應用程序生成的war文件是否將干凈地部署到容器(至少是tomcat和jetty)的快速方法是添加tomcat和jetty maven插件并使用這些插件來啟動應用程序。 這是一個演示此示例的示例項目– https://github.com/bijukunjummen/spring-websocket-chat-sample.git

翻譯自: https://www.javacodegeeks.com/2014/11/spring-boot-war-packaging.html

總結

以上是生活随笔為你收集整理的Spring靴子战争包装的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。