sprint boot_Sprint Boot子战争包装
sprint boot
Spring Boot建議在構建期間使用嵌入式容器(tomcat或碼頭)創建一個可執行jar,并在運行時將此可執行jar作為獨立進程使用。 但是,通常將應用程序部署到一個外部容器是很常見的,Spring Boot提供了打包應用程序的方式,專門針對這種需求。
我在這里的重點不是重復關于創建war構件的已經詳細的Spring Boot 指導 ,而是在測試創建的文件以查看它是否可以在獨立容器上可靠地工作。 我最近在通過Spring Boot項目創建戰爭并將其部署在Jetty上時遇到了一個問題,這實際上是從該經驗中學到的東西。
測試戰爭能否可靠進行的最佳方法是簡單地使用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插件開始戰爭:
mvn tomcat7:run并帶有碼頭插件:
mvn jetty:run如果創建戰爭的方式有任何問題,則應在啟動時使用這些容器來解決。 例如,如果我要保留嵌入式tomcat依賴項:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId> </dependency>然后在啟動maven tomcat插件時,將出現以下錯誤:
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
sprint boot
總結
以上是生活随笔為你收集整理的sprint boot_Sprint Boot子战争包装的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 电脑cpu上使用的硅脂(电脑cpu用什么
- 下一篇: 华为电脑配置如何选择?
