Spring靴子战争包装
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
Spring靴子战争包装相关推荐
- sprint boot_Sprint Boot子战争包装
sprint boot Spring Boot建议在构建期间使用嵌入式容器(tomcat或码头)创建一个可执行jar,并在运行时将此可执行jar作为独立进程使用. 但是,通常将应用程序部署到一个外部容 ...
- 部署Spring Boot Angular App(Maven和Tomcat)的4种方法
在上一篇有关Spring Boot angular 5的文章中 ,我们使用Spring Boot angular 5实现了一个完整的堆栈端到端Web应用程序.在本文中,我们将讨论在tomcat上部署S ...
- Spring Boot参考指南
Spring Boot参考指南 作者 菲利普·韦伯,戴夫 Syer,约什 长,斯特凡 尼科尔,罗布 绞车,安迪·威尔金森,马塞尔 Overdijk,基督教 杜普伊斯,塞巴斯蒂安·德勒兹,迈克尔·西蒙斯 ...
- Spring源码系列:BeanDefinition源码解析
Bean的定义主要由BeanDefinition来描述的.作为Spring中用于包装Bean的数据结构,今天就来看看它的面纱下的真容吧. 首先就是BeanDefinition的类定义: public ...
- 面试:讲一讲Spring中的循环依赖
前言 Spring中的循环依赖一直是Spring中一个很重要的话题,一方面是因为源码中为了解决循环依赖做了很多处理,另外一方面是因为面试的时候,如果问到Spring中比较高阶的问题,那么循环依赖必定逃 ...
- Spring AOP 的proxy详解
spring 提供了多种不同的方案实现对 bean 的 aop proxy, 包括 ProxyFactoryBean, 便利的 TransactionProxyFactoryBean 以及 AutoP ...
- Spring - Java/J2EE Application Framework 应用框架 第 11 章 使用ORM工具进行数据访问
第 11 章 使用ORM工具进行数据访问 11.1. 简介 Spring在资源管理,DAO实现支持以及实物策略等方面提供了与Hibernate, JDO和iBATIS SQL映射的集成. 对Hiber ...
- Spring - Java/J2EE Application Framework 应用框架 第 9 章 DAO支持
第 9 章 DAO支持 9.1. 简介 Spring中的DAO(数据访问对象)支持主要的目标是便于以标准的方式使用数据访问技术, 如JDBC,Hibernate或者JDO.它不仅可以让你在这些技术间相 ...
- spring ResponseEntity
spring ResponseEntity 1. 用途 ResponseEntity用于后台服务返回给前端发送数据的格式化.开始的时候,我们用json包生产一个json的字符串,配合http 协议 ...
最新文章
- 如何用Python做Web开发?——Django环境配置
- Android无需权限显示悬浮窗, 兼谈逆向分析app
- CSS3的box-shadow属性:给指定的区域加阴影
- CDC之CreateCompatibleDC与BitBlt
- .netcore 堆栈调用方法小记
- 学渣的心酸(求职篇)
- [数据结构]P2.1 二叉搜索树
- Sping AOP概述
- 利用ENVI自带全球DEM数据计算区域平均高程
- 较新颖的智能优化算法
- ElacticSearch索引,文档,记录,常用指令
- angular2 全局路由守卫_Angular 路由守卫
- 好123主页篡改修复方法
- nRF53832开发环境搭建
- U盘容量变小?这儿有解决方法!
- AirServer2023免费无线Mac和PC电脑屏幕镜像投屏工具
- 网络摄像头工作原理_好,更好,最好以预算创建最终的远程工作者网络摄像头设置
- 遥感图像辐射增强ERDAS实现
- 小技巧 - 禁止复制的网站如何破解复制功能(知乎,360图书馆)?
- 观看《赢在中国 蓝天碧水间》观后感
热门文章
- 2019蓝桥杯省赛---java---C---5(最大降雨量)
- 云服务器的购买和宝塔面板的使用
- java弹弹球实验报告_Java弹球游戏实验报告—chen
- selenium 示例_Selenium测试中所需的功能和示例
- 设计模式 工厂方法_工厂方法设计模式
- adf开发_在EL表达式中引用ADF Faces组件
- 大文件拆分小文件求top_将文件拆分为流
- 英文连词_连词我们…讨厌
- java开发常见异常_最常见的Java异常及其对Java开发人员的评价
- 设计模式示例_复合设计模式示例