springboot项目打成war包部署,tomcat修改配置

apache-tomcat-8.5.37-windows-x64 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,它早期的名称为catalina,后来由Apache、Sun 和其他一些公司及个人共同开发而成,并更名为Tomcat。Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选,因为Tomcat 技术先进、性能稳定,成为目前比较流行的Web 应用服务器。Tomcat是应用(java)服务器,它只是一个servlet容器,是Apache的扩展,但它是独立运行的。 立即下载
  • 1.tomcat安装
    ①下载apache-tomcat-8.5.37-windows-x64.zip,配置环境变量TOMCAT_HOME=tomcat安装路径/bin,再添加class_path =%TOMCAT_HOME%\BIN;
    ②启动cmd.exe, 进入tomcat 安装文件下的 bin目录下,例如我这里的安装位置:D:\Program Files\tomcat8.5
    ③进入命令行,输入 d: 回车, cd D:\Program Files\tomcat8.5\bin 回车 ,startup 启动服务器,shutdown 关闭服务器.
  • 2.war 包部署
    ①pom.xml 文件 首先更改打包方式 war,再排除springboot内置的 web 项目下tomcat依赖
<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>
   再引入tomcat依赖:
  <dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
			<!--打包的时候可以不用包进去,别的设施会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。
                相当于compile,但是打包阶段做了exclude操作-->
			<scope>provided</scope>
		</dependency>
	再添加 打成war包以后的名字:
	<fileName>demo</fileName>
-- 更改springboot的启动类 DemoApplication,让其实现SpringBootServletInitializer,然后重写configure()方法:示例
 @SpringBootApplication
		public class DemoApplication extends SpringBootServletInitializer {
			public static void main(String[] args) {
				SpringApplication.run(DemoApplication.class, args);
			}

			@Override
			protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
				return builder.sources(DemoApplication.class);
			}
		}
① IDEA 下,运行mvn clean,--> mvn package ,等到项目打包成功,在该项目文件位置找到target 下的 demo.war,拷贝到tomcat8.5/webapps目录下,
②使用windows命令行,启动tomcat服务器,项目启动成功会出现, spring 的标志
   ③访问路径:localhost:8080/${打包文件名}/请求url
④如何在访问时 去掉war包名?
   答:① 原理:Tomcat的默认根目录是ROOT,实际上ROOT这个项目在实际生产环境是没有用的,所以我们可以用我们的项目覆盖ROOT项目 
		操作过程: 
		1.删除ROOT下所有文件及文件夹 
		2.把我们项目的war包解压后,项目目录下的所有文件和子目录都拷贝到ROOT目录下即可 
		或者有更狠的一招:直接删掉ROOT目录,然后把我们的项目打包名称改成ROOT.war,放到webapps下就行 
	  ② 原理:Tomcat本身可以配置虚拟目录。方法就是在Server.xml中<Engine><Host>节点下加入Context信息。如我们可以配置<Context path="/abc" docBase="D:\app\abc" ... />,那我们可以通过地址http://localhost:8080/abc来访问我们放在D:\app\下面的abc项目。我们可以把这个path="/abc"修改为path=""。意思就是把abc映射到根目录,访问路径就会变成http://localhost:8080/。 
		操作过程: 
		按照配置虚拟目录的方式,在<Engine><Host>下添加一个Context节点,具体配置如下: 
		    <Engine name="Catalina" defaultHost="localhost">  
		        <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">  
		        <Context path="" docBase="Interface" reloadable="true" />  
		    <!--注:我这里使用的是相对路径,Interface项目是放在Tomcat的webapps目录下的,当然也可以改为绝对路径-->  
		        </Host>  
		    </Engine>
  • Spring Boot也提供了对JMX监控的支持。JMX监控对外暴露的信息相同,不过是使用MBeans容器将应用数据封装管理。Springboot 的jmx 是默认开启的,如果tomcat 部署两个原springboot 打成的war 包,需要将每一个项目的jmx关闭,
    Application.properties 配置中 添加spring.jmx.enabled=false; 或者法2:在各自项目中都添加:spring.jmx.default-domain=project1
    spring.jmx.default-domain=project2
    保证domain是不一样的。

  • 3.tomcat 相关配置修改
    – 修改默认的http访问端口:8080 为 8181
    在tomcat8.5/conf/server.xml文件里修改:示例

<Connector port="8181" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
-- 修改默认的session有效期
   ①.在tomcat8.5/conf/web.xml文件里修改,范围是具体项目:示例
    <session-config>
       <session-timeout>30</session-timeout>
    </session-config>
   ②.在tomcat8.5/conf/server.xml
       <Context path="/test" docBase="/test"  
		  defaultSessionTimeOut="3600" isWARExpanded="true"  
		  isWARValidated="false" isInvokerEnabled="true"  
		  isWorkDirPersistent="false"/>
   ③.在java后台代码里配置,具体页面的session有效时间
         session.setMaxInactiveInterval(30*60;

   生效优先级: 3 > 2 > 1,
  • 4.tomcat 调优,转自https://www.cnblogs.com/zhuawang/p/5213192.html
    ①tomcat 修改最大线程,在tomcat8.5/conf/server.xml文件里修改:示例

    maxThreads=“X” 表示最多同时处理X个连接
    minSpareThreads=“X” 初始化X个连接
    maxSpareThreads=“X” 表示如果最多可以有X个线程,一旦超过X个,则会关闭不在需要的线程
    acceptCount=“X” 当同时连接的人数达到maxThreads时,还可以排队,队列大小为X.超过X就不处理
    ②tomcat 内存优化
    Windows 下的catalina.bat
    Linux 下的catalina.sh 如:
    JAVA_OPTS=’-Xms256m -Xmx512m’
    -Xms JVM初始化堆的大小
    -Xmx JVM堆的最大值 实际参数大小根据服务器配置或者项目具体设置.
    ③ Tomcat IO优化
    1:同步阻塞IO(JAVA BIO) 同步并阻塞,服务器实现模式为一个连接一个线程(one connection one thread 想想都觉得恐怖,线程可是非常宝贵的资源),当然可以通过线程池机制改善.
    2:JAVA NIO:又分为同步非阻塞IO,异步阻塞IO 与BIO最大的区别one request one thread.可以复用同一个线程处理多个connection(多路复用).
    3:,异步非阻塞IO(Java NIO2又叫AIO) 主要与NIO的区别主要是操作系统的底层区别.可以做个比喻:比作快递,NIO就是网购后要自己到官网查下快递是否已经到了(可能是多次),然后自己去取快递;AIO就是快递员送货上门了(不用关注快递进度)。
    BIO方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4以前的唯一选择,但程序直观简单易理解.
    NIO方式适用于连接数目多且连接比较短(轻操作)的架构,比如聊天服务器,并发局限于应用中,编程比较复杂,JDK1.4开始支持.
    AIO方式使用于连接数目多且连接比较长(重操作)的架构,比如相册服务器,充分调用OS参与并发操作,编程比较复杂,JDK7开始支持.
    在server.xml中

    实现对Tomcat的IO切换
    – APR(知识储备不够,不了解)
    APR是从操作系统级别来解决异步的IO问题,大幅度的提高性能. (http://apr.apache.org/).
    ①APR(Apache Portable Runtime)是一个高可移植库,它是Apache HTTP Server 2.x的核心.能更好地和其它本地web技术集成,总体上让Java更有效率作为一个高性能web服务器平台而不是简单作为后台容器.
    ②在产品环境中,特别是直接使用Tomcat做WEB服务器的时候,应该使用Tomcat,Native来提高其性能.如果不配APR,基本上300个线程狠快就会用满,以后的请求就只好等待.但是配上APR之后,并发的线程数量明显下降,从原来的300可能会马上下降到只有几十,新的请求会毫无阻塞的进来.
    ③在局域网环境测,就算是400个并发,也是一瞬间就处理/传输完毕,但是在真实的Internet环境下,页面处理时间只占0.1%都不到,绝大部分时间都用来页面传输.如果不用APR,一个线程同一时间只能处理一个用户,势必会造成阻塞。所以生产环境下用apr是非常必要的.
手把手教你用C语言给STM32写一个Modbus RTU从机库(含完整项目源码) 在工业自动化领域,Modbus RTU协议因其简单可靠的特点,成为RS485总线通信的事实标准。对于嵌入式开发者而言,为STM32等微控制器实现一个高效的Modbus RTU从机协议栈,是开发智能传感器、执行器等设备的必备技能。Modbus RTU从机的核心是一个状态机,需要处理帧接收、CRC校验、功能码解析和响应生成等环节。工业现场总会遇到意想不到的干扰情况,一个健壮的协议栈应该能够优雅地处理各种异常场景,而不是简单地崩溃或死锁。工业现场环境复杂,协议栈必须具备完善的异常处理机制。 阅读详情

相关推荐

以高通camera 申请ion内存看dma-buf

1 fd 与ion buffer, file绑定 简单总结就是申请一个buffer,再创建一个dmabuf 结构体然后将,然后将dmabuf中得指针指向buffer,dmabuf 再传递给一个匿名的inode,获取到一个file,这样file和dmabuf绑定起来,也就和buffer关联上。然后再从进程中分配一个空闲的fd,将fd 和file囊绑定。这样就能通过fd 快速查找到buffer。file 是个全系统的,他和进程无关,但是fd 是每个进程都是自己独立的,所以再跨进程传输时只需要保证fd ...

兔兔里个花兔的博客 6444

windows修改替换war包配置文件

windows修改替换war包配置文件

杨咩咩 3991

树莓派4B+红外传感器:手把手教你DIY一个能走黑线的智能小车(Python代码全解析)

本文详细介绍了如何使用树莓派4B和红外传感器DIY一个智能循迹小车,包括硬件配置、GPIO连接、Python代码实现及优化算法。通过动态PWM调速、状态机设计和赛道记忆算法,提升小车的循迹性能和稳定性。适合初学者和电子爱好者动手实践。

weixin_29188043的博客 269

运维java项目的技巧 (war包、jar包、docker环境)

https://blog.youkuaiyun.com/csdnzouqi/article/details/90169728 mac使用vim命令修改jar包配置文件内容 https://www.cnblogs.com/tonggc1668/p/7519470.html Linux修改war包中文件 https://www.cnblogs.com/lilijun/p/7428376.html Linux修改war包中文件 https://www.orchome.com/703 linux下使用vim修改jar包、

Nightwish5的博客 2220

Xilinx HydraMini试玩教程

HydraMini是Xilinx推出的基于Pynq-Z2开发板的自动驾驶开发小车,其有着简单易学、高灵活性、高扩展性、高性能等优良特性,是研究人员和学生进入自动驾驶领域的一个平台。本教程会通过最基础的讲解和步骤带领读者熟悉这个平台的基本开发流程。

qq_25762163的博客 1773

Android Studio打包全攻略---从入门到精通

初出茅庐 手动打包怎么手动打包项目写完了,现在需要把应用上传到市场,问题出现—怎么把代码变成.apk(Android的可安装文件)。 1. 创建签名文件 2. 填写好签名参数 3. 生成APK 注意:签名的密码和密匙的密码注意保管,不要忘了,签名文件别泄漏了,也别搞丢了为什么要打包我最开始就有这个疑问,我们的代码不是点了下运行按钮就直接安装到手机上了吗,我们在在项目Project

我早就想,要这样载着你,翻山越岭 2万+

修改war包中数据库配置信息

第一步:war -> jar 1、将war包解压缩 2、创建目录,层级与.java文件包名一致,把.class文件移到该目录下(如果路径名与包名不一致,转dex操作会报错) 3、用jdk/bin目录下的jar命令, jar cvf 生成.jar class目录或class文件,得到jar文件 第二步:class -> dex 需要工具: Android Build-...

Tusi.blog 8146

CST与MATLAB连接设置

打开MATLAB,点击"Set Path"按钮,然后点击"Add Folder"。在CST中,点击"Options"菜单,然后选择"Advanced"选项。在弹出的对话框中,点击"COMSOL"选项卡,并确保"Enable COMSOL"复选框被选中。通过上述步骤和示例代码,你可以开始使用MATLAB与CST进行集成,并根据你的具体需求进行进一步的开发和应用。通过这个简单的示例,你可以开始在MATLAB中与CST进行交互,并根据你的需求进行更复杂的操作,如参数化仿真、优化和数据处理等。

TechPulseZ的博客 1966

tomcat在服务器上怎么修改配置文件

tomcat在服务器上怎么修改配置文件

lk643518的博客 1902

干货|C#上位机与西门子PLC的Profinet协议通信开发(工控机版)

文章摘要: Profinet是西门子主导的工业以太网协议,支持实时通信(RT/IRT),广泛应用于PLC与工控机通信。本文聚焦C#上位机通过S7协议(集成于Profinet接口)高效访问西门子PLC(S7-1200/1500等),提供完整开发方案: 协议基础:解析Profinet三层架构(TCP/IP层、实时层、应用层),对比S7协议优势(开发便捷、跨平台); 开发实践:基于S7NetPlus/Snap7库实现数据读写,涵盖DB块、I/O点等地址规则; 环境配置:工控机(Windows/Linux/统信UO

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1213

嵌入式软考必备知识点:嵌入式系统开发中的重要概念和示例代码

在嵌入式软考中,有一些重要的知识点需要掌握,包括嵌入式系统的基本概念、编程语言、实时操作系统和硬件接口等。实时操作系统是一种专门设计用于嵌入式系统的操作系统,可以提供对任务调度、中断处理和资源管理等方面的支持。GPIO(通用输入输出):GPIO是嵌入式系统中常用的硬件接口,用于连接外部设备和嵌入式系统。以上是嵌入式软考中的一些必备知识点,包括嵌入式系统的基本概念、编程语言、实时操作系统和硬件接口。通过配置串口的波特率、数据位数和校验位等参数,可以实现与其他设备的可靠通信。一、嵌入式系统的基本概念。

PixeGO的博客 313

java+maven工程 实现 自动对war包进行复制并修改和替换每个的配置文件

在工作中碰到一个比较苦恼的事情,(这里以7条线为例子)同一个war包 需要部署7条生产线,但是每个生产线的编号以及ip都不同,导致我们手动的每个包去替换配置文件和配 置ip的js文件 并且每次发布,还需要手动去修改配置文件里面的版本号,这样十分的繁琐。因此该小程序实现对同一个war包进行自动替换里面的配置和js文件加入相关的版本号, 生...

weixin_30409849的博客 526

视觉-语言模型:BLIP与Flamingo如何理解图文?

视觉-语言模型:BLIP与Flamingo如何理解图文? ,人工智能,计算机视觉,大模型,AI,在当今人工智能飞速发展的时代,视觉 - 语言模型作为多模态领域的关键技术,正逐渐改变着我们与数字世界交互的方式。它们致力于打破图像与文本之间的模态壁垒,使计算机能够像人类一样,综合理解和处理视觉与语言信息。其中,BLIP 和 Flamingo 两款模型脱颖而出,以独特的架构和创新的训练方法,在图像描述生成、视觉问答、图文检索等任务中展现出卓越的性能。本文将深入剖析 BLIP 与 Flamingo 模型的工作原理。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 4万+

springboot 配置tomcat部署项目

前言: springboot部署项目有两种: 1、使用内置tomcat,打成jar包,发布到线上即可。 2、使用外置tomcat,打成war包,线上需要另外tomcat把war包放在tomcat目录下才能运行 一、使用springboot内置tomcat,打成jar包 1、tomcat是一个免费的、开放源码的Web应用服务器,作为中小型系统和并发访问用户不是很多的场合下被普遍使用。...

GSON的博客 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

IntelliJ IDEA Spring Boot 打成war包

IntelliJ IDEA Spring Boot 打成war包 Springboot由于使用内置tomact,建议打成jar方便一点,但在这里我着重讲的是Springboot打war包。 第一步:修改packaging为war包; 第二步:删除默认的tomact,这里有两种方式删除; (1).第一种方式: 注意:如果当前项目还需使用jsp,则...

m0_37981898的博客 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

SpringBoot在Intellij Idea中使用gradle打成war包部署到Tomcat

SpringBoot在Intellij Idea中使用gradle打成war包部署到Tomcat 导语:叶子写了一个SpringBoot在打成war包部署到Tomcat时,老是提示404错误,经过多次检查修正,终于可以运行在tomcat下了。 一、修改gradle.build文件的参数 添加如下配置 apply plugin: ‘war’ 修改依赖,将tomcat的依赖范围修改为providedR...

m0_38127869的博客 2276

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

springboot打成war包放入tomcat的webapps中启动成功,访问controller层报404,访问页面正常

这两天老大安排新活,让我这个深陷该bug的人换换口味,搭建一个springboot框架,能够简单实现Restful风格的接口。springboot之前用过,这来回差不多有一年没有接触过了。这次搭建就遇到好几个坑,不过也都算解决了,有环境的问题,也有代码的问题,这里记录一下方便以后参考。下面具体说说吧~ github项目地址:https://github.com/fenglizhang/Teleme...

万米高空的博客 1万+

Springboot项目的War包部署在tomcat上

Springboot项目的War包部署在tomcat上

米顾的博客 1307

项目部署到tomcat,项目访问路径配置

SpringBoot项目打成war包,部署到tomcat项目访问路径配置 对工程的部署一般是将工程的压缩文件放在tomcat安装的webapps下,然后启动bin目录下的startup.dat启动文件启动项目,然后通过输入http://localhost:8080/xx,或者通过ip/端口号/项目访问名访问(xx是部署时的应用工程的访问名字)。如果直接输入:http://localhost:8080访问的是tomcat的主页面,如何将http://hocalhost:8080设置成自己的工程访问路径呢?让我

weixin_45951843的博客 8859

SpringBoot打war包

1、 修改pom.xml文件,将项目打成war包 jar 2、修改pom.xml文件,将内嵌容器的依赖标记为provide org.springframework.boot spring-boot-starter-tomcat provided 提供一个SpringBootServletInitializer的子类,并覆盖其configure方法,完成初始化操作: public class S...

qq_40820382的博客 284

spring boot 打成war包 部署到第三方tomcat中

第一步:将spring-boot-start-web中的自带的tomcat去掉 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-...

chunshih327007的博客 172

Tomcat基本环境变量配置以及war包运行

一,Tomcat基本环境变量配置 1.在配置tomcat之前需要配置好JDK的环境 。JDK配置可以参照博文《Windows环境下JDK安装与环境变量配置》 2.在Tomcat官网下载安装包Tomcat下载 3.安装包解压目录如图 4.打开系统变量 新增两个变量(变量值为 解压后tomcat的路径) 如图 CATALINA_BASE C:\apache-tomcat-9.0.16 CATALI...

ChengChengxn的博客 3659

SpringBoot项目快速打包与部署,War包⽅式打包部署与Jar包⽅式打包部署两种方式

虽然通过SpringBoot的内嵌tomcat可以直接打Jar包进行部署,但是有些服务器上已经配置好了Tomcat服务器,并且需要使用Tomcat服务器部署多个应用,此时需要我们把项目打包成War包的形式部署到服务器中。双击package进行打包,看到下方出现build success,证明打包成功,去target目录下查找jar文件。将打包好的jar包放到服务器中,注意备份之前的数据。回到服务器上,存储jar包的目录,使用命令启动服务。在重启服务时,先杀死旧的服务,可以使用。查看进程id,并使用。

LB_Wuyanzu的博客 912

springboot打Jar包和War包

一:打JAR包在工程的pom.xml中添加以下依赖&lt;build&gt;  &lt;plugins&gt;     &lt;plugin&gt;        &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;        &lt;artifactId&gt;spring-boot-maven-plugin&lt;/artifact...

小小丶悟空 308

打成jar包_SpringBoot中打war包需要注意

最近在做一个项目,遇到了项目打成 war 包的一个问题,项目创建时选择的时 jar 包方式,后因项目部署要求,需要打成 war 包部署,遇到很多坑,在此做一下记录一、修改打包方式原:0.0.1-SNAPSHOTjar改后:0.0.1-SNAPSHOTwar二、排除内置 Tomcat原: org.springframework.boot spring-boot-starter-web改后...

weixin_42246401的博客 129
上一篇: HashMap,HashSet原理解析
下一篇: centeros7 命令ip addr,出现 io ,ens33,无ip地址的问题
HelloKittyn
博客等级 码龄10年 10粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值