Tomact升级步骤

article/2025/9/23 1:43:08

本文以apache-tomcat-6.0.18升级为apache-tomcat-7.0.85为例。

目录

一、准备Tomcat包

二、升级步骤

2.1、停服务

2.2、打包现有Tomcat目录下logs和webapps目录

2.3、备份现有Tomcat目录

2.4、上传Tomcat安装包至 $HOME 下并解压

2.5、修改环境变量及启动脚本参数

2.6、Tomcat启动验证

2.7、迁移原项目及日志

2.8、启动验证

三、有问题回退步骤

3.1、Tomcat包回退

3.2、环境变量回退

3.3启动验证

四、升级问题统计

4.1、url特殊字符问题

4.1.1日志信息:

4.1.2问题分析

4.1.3解决方案


一、准备Tomcat包

可通过【uname -a】命令查看服务器系统信息。

下载的Tomcat包为Linux下的,apache-tomcat-7.0.85.tar.gz,若需部署的环境可解压“*.tar.gz”包,可直接看第二步。

笔者需要部署的环境没法解压“*.tar.gz”包,故先在可解压的环境下将安装包解压,然后打成tar包,然后拿到要部署的环境。但在用sftp拿到Windows下后(两个机器访问不通需先拿到Windows下,然后上传),发现拿到的tar包里多了“PaxHeaders.*”文件,经查是sftp传输的问题,需在打成tar包时增加一个参数:【--format=gnu】,打完包再传就可以了。

#1.解压
tar xvf apache-tomcat-7.0.85.tar.gz#2.重新打包
tar --format=gnu cvf apache-tomcat-7.0.85.tar apache-tomcat-7.0.85

二、升级步骤

【打包旧的包注意空间剩余量!!!(df -k $HOME)】

2.1、停服务

cd./apache-tomcat-6.0.18/bin/shutdown.sh

2.2、打包现有Tomcat目录下logs和webapps目录

cd
cd apache-tomcat-6.0.18
tar cvf logs.tar logs
tar cvf webapps.tar webapps

2.3、备份现有Tomcat目录

cd
mv apache-tomcat-6.0.18 apache-tomcat-6.0.18_bak

2.4、上传Tomcat安装包至 $HOME 下并解压

cd
tar xvf apache-tomcat-7.0.85.tar

2.5、修改环境变量及启动脚本参数

#note:笔者环境下Tomcat的启动脚本是在myshell.sh中添加的自定义命令
【start is aliased ~/apache-tomcat-6.0.18/bin/startup.sh,
down is aliased ~/apache-tomcat-6.0.18/bin/shutdown.sh】,
同时myshell.sh在.profile里有引用,故需修改myshell.sh
cd
cd mysbin
cp myshell.sh myshell.sh.bakvi myshell.sh
#全量替换【在该脚本中有Tomcat启动脚本的自定义命令】
:%s/6.0.18/7.0.85/g
#保存退出
diff myshell.sh myshell.sh.bak#使修改生效
cd
. .profile #unix
source .profile #Linux#修改端口号,具体参数参考旧的Tomcat配置
cd ~/apache-tomcat-7.0.85/conf
cp server.xml server.xml.bakvi server.xml
#第一处需要修改的
<Server port="8005" shutdown="SHUTDOWN">
#第二处需要修改的
<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />
#第三处需要修改的
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />#保存退出
diff server.xml server.xml.bak#以下修改可参考旧的Tomcat的startup.sh,若有则配置,没有则无需配置
cd ~/apache-tomcat-7.0.85/bin
cp startup.sh startup.sh.bak
vi startup.sh#保存退出
diff startup.sh startup.sh.bak

2.6、Tomcat启动验证

cd
down
start#浏览器访问
http://[IP]:[port]/

2.7、迁移原项目及日志

cd
down
cd apache-tomcat-7.0.85
mv webapps webapps_bak
cp ~/apache-tomcat-6.0.18_bak/webapps.tar ./
cp ~/apache-tomcat-6.0.18_bak/logs.tar ./
tar xvf webapps.tar
tar xvf logs.tar

2.8、启动验证

cd
start#浏览器访问验证
http://[ip]:[port]/[项目名]/

三、有异常时回退的步骤

3.1、Tomcat包回退

cd
down
mv apache-tomcat-7.0.85 apache-tomcat-7.0.85_err
mv apache-tomcat-6.0.18_bak apache-tomcat-6.0.18

3.2、环境变量回退

cd
cp myshell.sh myshell.sh.err
cp myshell.sh.bak myshell.sh
. .profile #unix
source .profile #linux

3.3启动验证

cd
start#浏览器访问验证
http://[ip]:[port]/[项目名]/

四、升级问题统计

4.1、url特殊字符问题

4.1.1日志信息:

4.1.2问题分析

RFC3986文档规定,Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符。RFC3986文档对Url的编解码问题做出了详细的建议,指出了哪些字符需要被编码才不会引起Url语义的转变,以及对为什么这些字符需要编码做出了相应的解释。

US-ASCII字符集中没有对应的可打印字符:Url中只允许使用可打印字符。US-ASCII码中的10-7F字节全都表示控制字符,这些字符都不能直接出现在Url中。同时,对于80-FF字节(ISO-8859-1),由于已经超出了US-ACII定义的字节范围,因此也不可以放在Url中。

保留字符:Url可以划分成若干个组件,协议、主机、路径等。有一些字符(:/?#[]@)是用作分隔不同组件的。例如:冒号用于分隔协议和主机,/用于分隔主机和路径,?用于分隔路径和查询参数,等等。还有一些字符(!$&’()*+,;=)用于在每个组件中起到分隔作用的,如=用于表示查询参数中的键值对,&符号用于分隔查询多个键值对。当组件中的普通数据包含这些特殊字符时,需要对其进行编码。

RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [ ] 
不安全字符:还有一些字符,当他们直接放在Url中的时候,可能会引起解析程序的歧义。这些字符被视为不安全字符,原因有很多。 
空格:Url在传输的过程,或者用户在排版的过程,或者文本处理程序在处理Url的过程,都有可能引入无关紧要的空格,或者将那些有意义的空格给去掉。 
引号以及<>:引号和尖括号通常用于在普通文本中起到分隔Url的作用 
井号(#) 通常用于表示书签或者锚点 
%:百分号本身用作对不安全字符进行编码时使用的特殊字符,因此本身需要编码 
{}|\^[]`~:某一些网关或者传输代理会篡改这些字符

同时RFC 3986规范在tomcat7.0.73版本中就已经提出了,RFC 7230也是对前者的一些补充或者说是完善,所以在tomcat7.0.73及以上版本都会有这种问题。

从日志信息可以看出Error parsing HTTP request header,负责解析http请求的org.apache.tomcat.util.http.parser.HttpParser,对请求URL中的字符做了限制,具体代码如下:IS_NOT_REQUEST_TARGET[]中定义了一堆not request target

if(IS_CONTROL[i] || i > 127 || i == 32 || i == 34 || i == 35 || i == 60 || i == 62 || i == 92 || i == 94 || i == 96 || i == 123 || i == 124 || i == 125) {IS_NOT_REQUEST_TARGET[i] = true;
}/*
转换过来就是以下字符(对应10进制ASCII看):键盘上那些控制键:(<32或者=127)非英文字符(>127)空格(32)双引号(34)#(35)<(60)>(62)反斜杠(92)^(94)TAB上面那个键,我也不晓得嫩个读(96){(123)}(124)|(125)
*/

由于页面中某个跳转url中带有特殊字符“||”,故报此错

4.1.3解决方案

4.1.3.1在~/apache/tomcat-7.0.85/conf/catalina.properties中添加:

tomcat.util.http.parser.HttpParser.requestTargetAllow=|

4.1.3.2换用低版本的tomcat,既然你是tomcat7.0.73版本,及以上版本有这种问题,我们可以暂时的逃避这个问题,选择低版本的tomcat。
4.1.3.3用post代替get请求,上面也说过了是get请求才会有这种情况,如果方便的话,我们完全可以采用post请求来实现这个功能。在前端对前端URL进行编码

前端对URL进行编码的实现方法。 
javascript可以使用的内置函数有

encodeURI()
encodeURIComponent() 
他们都是用utf-8的编码方式,对于get请求,他的编码格式默认是按照浏览器的编码格式进行编码的,我们可以设置浏览器的编码格式,但是每个用户的浏览器的编码格式不可能都是一致的,这样我们的get请求的参数有时候就会出现乱码问题,但是如果我们自己在前端对get请求利用encodeURI()或者encodeURIComponent ()来统一设置成utf-8编码,这样我们在后台在用utf-8来解码,就不会出现乱码问题。 
这里需要注意的一点,对于get请求的中文乱码问题,如果你没有在tomcat配置文件中设置编码格式,天真的想用request.setCharacterEncoding(“UTF-8”)来在后端设置后端的解码格式,这种方式对于get请求是无效的。同时有的小伙伴可能会想我们可以在项目的web.xml中设置编码过滤器。抱歉这种方式对于get请求也是无效的。 
对于这种情况我们可以采用new String(request.getParameter(“name”).getBytes(“iso-8859-1”),”UTF-8”) 来进行二次编码解码过程,这种方式就能解决get请求中文乱码问题,当然我们也可以在tomcat的配置文件中设置统一编码格式。

encodeURI(),用来encode整个URL,不会对下列字符进行编码:+ : / ; ?&。它只会对汉语等特殊字符进行编码 
encodeURIComponent (),用来enode URL中想要传输的字符串,它会对所有url敏感字符进行encode 
在对url做encode操作时,要根据情况选择不同的方法。 当参数中有汉字时可以用encodeURI(url) ,当你的参数中包含+ : / ; ?&请使用 encodeURIComponent 方法对这些参数单独进行编码。


http://chatgpt.dhexx.cn/article/Y2dWl7kh.shtml

相关文章

网站升级https访问,webscoket升级wss问题

前段时间&#xff0c;网站访问由http变更为https&#xff0c;但是由于webscoket功能受到影响&#xff0c;报错如下&#xff1a; 跟前端沟通解决方式问题&#xff0c;前端回复说很麻烦&#xff0c;暂时不要做了。 今天突发奇想&#xff0c;我是不是可以在nginx中修改配置&#…

WF-2页面升级方法

准备工作 需要把相应的软件升级包拷贝到电脑任意路径下&#xff0c;如下图例子所示&#xff0c;将W30S_GAN_V2_update_conf.pac放到桌面目录WF-2目录中&#xff1a; 1.电脑连接路由器的lan口&#xff0c;打开浏览器在地址栏输入192.168.10.1&#xff0c;按Enter键即可进入路由…

Nginx升级1.20.1后访问出现403之解决

安全扫描提示Nginx出现安全漏洞。 一共8个漏洞涉及多个nginx版本。经过考虑决定升级到1.20.1. 下载安装包&#xff0c;使用tar解包。 在服务器端&#xff0c;执行nginx -V查看当前nginx使用了那些配置参数。 然后使用./configure 参数使用nginx -V查到的参数&#xff0c;但是…

jenkins升级后访问报错

1、先来看看报错截图吧 2、解决方法&#xff0c;下载role-strategy.hpi文件放到JENKINS_HOME/plugins文件夹下面 2.1、下载链接&#xff1a;https://updates.jenkins.io/latest/role-strategy.hpi 放到JENKINS_HOME/plugins后需要授权 chmod 755 role-strategy.hpi 3、重启jen…

域名升级访问中拿笔记好_域名选择与老域名质量评分,尽量少踩坑

关于"域名选择与老域名质量评分"与"适合seo服务器选择与服务器安全搭建"2小节课程,本来上周三,周五已经讲完了,但是这个回放课程一直被自己找各种理由往后托,笔记也没做!好吧,看啦灰牛在学习这块还是不够积极呀!然后午休的时候看了下"域名选择与老域名…

域名升级访问中拿笔记好_赶快看看你的电脑中是否被植入了这个软件

​近日,有技术爱好者反映其电脑主板 BIOS 中预置了一款由 Absolute 公司开发的防盗追踪软件 Computrace。电脑启动后,操作系统会隐蔽安装该软件,经常向境外传输不明数据。 该软件可以远程获取电脑中的用户文件,控制用户系统,监控用户行为,甚至可以在没有授权的情况下自动…

IT资产管理流程及规范

公众号回复&#xff1a;干货&#xff0c;领取价值58元/套IT管理体系文档 公众号回复&#xff1a;ITIL教材&#xff0c;领取最新ITIL4中文教材 更多专业文档请访问 www.itilzj.com 为了更好地维护和管理IT设备&#xff0c;充分利用所有IT设备资源&#xff0c;不断提高公司IT资产…

固定资产管理系统哪家好?固定资产管理平台有哪些?

根据先进的云呐固定资产管理系统&#xff0c;RFID物联网技术与互联网技术的深度融合&#xff0c;让RFID标识和智能产品系统自动收集记录资产在生命周期、价值变化、处理资产设备从采购到使用、盘点、损坏、变更等管理阶段&#xff0c;帮助企业从复杂的管理过程中解放。 解决固定…

企业固定资产管理是哪个部门管理的

固定资产管理是由哪个部门进行管理的?通常情况下&#xff0c;企业的固定资产是由财务部、行政部门、办公室、资产管理部门、设备部等等这些管理的。 首先&#xff0c;我们要了解固定资产管理是由哪个部门来处置&#xff0c;企业的固定资产应该有资产管理部门、财政部门、企业还…

固定资产管理系统软件

资产管理系统解决方案适合20人左右的政府部门、事业单位、部队、企业、大专院校、医院、中小学等资产管理部门使用。固定资产管理系统平台支持条码或rfid电子标签&#xff0c;请根据实际场景需要选择相匹配的数据采集器&#xff08;手持终端&#xff09;、标签打印机等。 资产管…

非标产品和标准产品的区别(关于3C)

近期因为关于3C认证问题&#xff0c;弄的焦头烂额&#xff0c;查询到一些资料记录一下 先看下《中华人民共和国标准化法》有关说明 第二条 本法所称标准&#xff08;含标准样品&#xff09;&#xff0c;是指农业、工业、服务业以及社会事业等领域需要统一的技术要求。 标准包…

公司固定资产该哪个部门管理,一般公司固定资产怎么管理

固定资产是企业顺利工作的基础条件&#xff0c;特别是针对固定资产密集型企业&#xff0c;如果固定资产管理不好&#xff0c;将直接影响企业的经营成本。因此&#xff0c;一般大型企业会设立专门的固定资产管理部门&#xff0c;由固定资产管理员管理和盘点大量的固定资产。很多…

云呐|如何完善固定资产管理制度和程序

从长远来看&#xff0c;我们应当挑选确定的固定资产管理软件。唯有考虑到这些优势&#xff0c;我们才可以长期深入使用固定资产管理软件&#xff0c;这也是企业未来必不可少的固定资产管理软件。如今&#xff0c;随着市场竞争力的猛增&#xff0c;企业必须首先运用固定资产管理…

【云驻共创】非标装备制造企业如何破除交付困境

文章目录 前言一、制造业的生产关系1.OEM的概念2.EU的概念3.EPC/SI的概念 二、数字化的现状及趋势1.IT和OT2.数字化设备 三、非标装备企业的现状1.非标装备企业的现状-运营模式低效 四、非标装备企业的发展趋势五、携手华为云&#xff0c;打造装备数字化解决方案六、基于工艺编…

意想不到,企业资产管理如此简单

对大中型企业&#xff0c;固定资产具有数量大、种类多、价值高、使用周期长、使用地点分散等特点&#xff0c;管理难度大。一些传统固定资产管理软件&#xff0c;痛点丛生&#xff0c;已难于满足企业需求。 资产管理平台 资产管理平台以资产管理目标为引导&#xff0c;以资产数…

云呐|固定资产归哪个部门管理,归谁管理

正常情况下&#xff0c;固定资产管理属于行政部门管理&#xff0c;固定资产管理是行政部门中非常重要的一部分&#xff0c;说到使用部门管理有点不合理&#xff0c;使用部门使用或毁坏固定资产或向行政部门报告&#xff0c;使用部门只使用&#xff0c;管理应属于行政部门&#…

0.3 - 非标设备常用材料

低碳钢&#xff1a;钢材含碳量≤0.25%&#xff0c;由于含碳量低&#xff0c;因而强度低&#xff0c;硬度低&#xff0c;但塑性、韧性高&#xff0c;可锻性和焊接性好。一般丌采用热处理&#xff0c;用于制造中小机械零件和要求丌高的模具。如自动化设备常用的Q235(A3)钢及钢型材…

固定资产管理系统(论文+PPT+源码)

固定资产管理系统 摘 要 随着计算机信息技术的发展以及对资产、设备的管理科学化、合理化的高要求&#xff0c;利用计算机实现设备及资产的信息化管理已经显得非常重要。 固定资产管理系统是一个单位不可缺少的部分。但一直以来人们使用传统的人工方式管理固定资产的信息&am…

管理好公司固定资产需要做什么?资产管理一步到位

众所周知&#xff0c;固定资产管理是一件既麻烦又易出错的复杂工作&#xff0c;而资产领用则是固定资产管理中最重要的环节之一。 不管是老企业还是新公司成立&#xff0c;常常需要解决这样一个问题&#xff0c;管理好公司的固定资产需要做什么&#xff1f;如何管理固定资产&am…

解决非标属性和低流动性,未来加密投资的黑马赛道

任何一个 token&#xff0c;不管是 FT&#xff0c;还是 NFT&#xff0c;全部都必须回答清楚三个基本问题&#xff1a; 1、是什么&#xff1f;这是基本的定性。 2、有啥用&#xff1f;这是价值的支撑。 3、谁买单&#xff1f;这是价值的变现。 常说的比特币&#xff0c;市场的…