spring boot 外部容器tomat、jboss部署
最近微服务比较火,小明我也学习下Spring Boot框架的使用。
首先创建一个项目,创建时选择Spring Initializr,然后Next,如下图:
填写项目信息,如下图:
下一步:
点击finish完成
OK,项目创建成功之后接下来我们来看看这个东西要怎么样去运行。首先我们看到在项目创建成功之后,在项目的根目录下会有一个artifactId+Application命名规则的入口类,如下图:
直接点击运行:
浏览器访问:
OK,至此,我们一个简单的Spring Boot工程已经创建出来了。
考虑到公司服务器使用jboss部署的,所以本地用tomcat、jboss启动一下
直接idea配置tomcat启动后浏览器访问报404错误,
问题解决:
第一步:
新建一个SpringBootStartApplication 继承自 SpringBootServletInitializer
作用:因为在外部容器部署的话,就不能依赖于Application的main函数了,而是要以类似于web.xml文件配置的方式来启动Spring应用上下文,
此时我们需要在启动类中继承SpringBootServletInitializer并实现configure方法,这个类的作用与在web.xml中配置负责初始化Spring应用上下文的监听器作用类似
【注意】:这个新建的类,与springboot的启动类是同级的
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;public class SpringBootStartApplication extends SpringBootServletInitializer {@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder application) {return application.sources(Springboot3Application.class);}
}
第二步:
修改pom.xml文件,让springboot内嵌的tomcat在运行时不起作用
<!-- 使用外部tomcat 启动 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><!-- provided 表明该包只在编译和测试的时候使用,去除默认的tomcat --><scope>provided</scope></dependency>
pom文件修改打成war包:
<packaging>war</packaging>
启动tomcat
访问成功:
下面我们配置下jboss再启动下试试:
启动报错,这是为什么呢?
之前搭建springMVC项目的时候也踩过JBOSS的坑,我感觉我都能针对JBOSS专门写一篇部署注意事项的博客了,MVC项目踩得坑可以详见我的另一篇博客:https://blog.csdn.net/qq_19201215/article/details/98033743
这次我在WEB-INF下加上了配置文件:jboss-deployment-structure.xml
但是内容有变化:
<?xml version='1.0' encoding='UTF-8'?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1"><deployment><exclusions><module name="org.slf4j" /><module name="org.slf4j.impl" /><module name="org.apache.commons.logging" /><module name="com.fasterxml.jackson.datatype.jackson-datatype-jdk8" /><module name="com.fasterxml.jackson.datatype.jackson-datatype-jsr310" /><module name="com.fasterxml.jackson.core.jackson-annotations" /><module name="com.fasterxml.jackson.core.jackson-core" /><module name="com.fasterxml.jackson.core.jackson-databind" /><module name="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" /><module name="org.jboss.resteasy.resteasy-jackson2-provider" /><module name="com.alibaba.fastjson" /><module name="javax.xml.bind.jaxb-api" /><module name="org.apache.logging.log4j.log4j-api" /></exclusions><module-alias name="deployment.springboot-3"/></deployment>
</jboss-deployment-structure>
然后再添加jboss-web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web><!-- For context --><context-root>/</context-root>
</jboss-web>
重新启动成功!
spring boot 外部容器tomat、jboss部署相关推荐
- Spring Boot Server容器配置
转载自 Spring Boot Server容器配置 参数配置容器 server.xx开头的是所有servlet容器通用的配置,server.tomcat.xx开头的是tomcat特有的参数,其它类似 ...
- spring boot 外部配置文件1-spring.config.location与spring.config.additional-location的区别
spring boot外部配置文件 基础环境 : 基础环境 版本 spring boot 2.7.0 JDK 8 测试代码: @SpringBootApplication public class D ...
- Spring Boot Maven聚合工程 打包部署教程
Spring Boot 给聚合工程 打包部署,这里打jar包进行部署,首先等保证父子工程能正常运行,依赖都能加载,不会造成maven之间循环依赖等问题,如图 从上面的图来看,就会发生循环依赖的问题,这 ...
- 居然仅用浏览器,就完成了Spring Boot应用的开发与部署!
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 最近有幸试用了一下阿里云的一个新产品:云开发平台,体验一 ...
- git上托管的代码如何部署在阿里云上_居然仅用浏览器搞定Spring Boot应用的开发与部署...
最近有幸试用了一下阿里云的一个新产品:云开发平台,体验一把全新的开发模式!虽然中间也碰到了一些问题,但整体的体验透露着未来感,因为整个过程都不需要使用我们最常用的IDEA,仅依靠浏览器就把一个Spri ...
- Spring Boot应用的打包和部署
现在的IT开发,DevOps渐渐获得技术管理人员支持.云计算从ECS转向Docker容器技术.微服务的概念和讨论也越来越热,以上这些研究方面,最终都聚焦于软件的打包.分发和部署上. [Twelve-F ...
- Spring Boot细节挖掘(Docker部署项目)
如今 Docker 的使用已经非常普遍,特别是在一线互联网公司,使用 Docker 技术可以帮助企业快速水平扩展服务,从而达到弹性部署业务的能力.在云服务概念兴起之后,Docker 的使用场景和范围进 ...
- spring boot 通过Maven + tomcat 自动化部署
使用maven创建的springboot项目,默认是jar包,springboot还有自己带的tomcat. 现在为了简单实现本地自动发布项目到服务器,需要通过发布war包的形式,通过maven将项目 ...
- 我司Spring Boot 项目打包 + Shell 脚本部署详细总结,太有用了!
欢迎关注方志朋的博客,回复"666"获面试宝典 本篇和大家分享的是 Spring Boot 打包并结合 Shell 脚本命令部署,重点在分享一个shell 程序启动工具,希望能便利 ...
最新文章
- Weka 开发[1]-Instances类
- Windows Caffe中MNIST数据格式转换实现
- Linux Kernel TCP/IP Stack — L7 Layer — Application Socket I/O 接口类型
- Spring Cloud Stream消费失败后的处理策略(三):使用DLQ队列(RabbitMQ)
- kafka和mqtt的区别是什么?
- 你在京东购买的商品,是怎么出现在抖音里面的?
- JavaScript倒计时
- JS中window.showModalDialog()详解
- I00005 打印直角三角形字符图案
- 心理学专业转用户体验_用心理学设计奇妙的用户体验
- php js 比较,PHP与JS的比较
- c++ 指针_C/C++学习笔记——C提高:指针强化
- bzoj 2216: [Poi2011]Lightning Conductor(DP决策单调性)
- 计算机数值方法第三版答案百度云,数值计算方法课后习题答案(李庆扬等)..doc...
- 使用java语言实现移位密码加密过程
- 基于HTML5的机器猫在线商城设计与实现
- 操作系统-PV操作-理发师问题
- TestDirector介绍
- catia v5法矢数据软件_CATIA V5完全学习手册
- SQL触发器实例(下)