关于在本地Tomcat服务器不能部署war文件,不会产生对应文件夹且查看日志提示 ***deployWAR Error deploying web application archive***的问题?
一、问题经过描述
1、在学习session时,准备测试tomcat服务器关闭会自动钝化(序列化),重启会自动活化(反序列化)功能。
2、在intelliJ IDEA中测试程序运行正常,由于IDEA中不能测试钝化功能,需要到本地tomcat中测试。
2、将intelliJ IDEA运行关闭后,将项目out目录下准备测试用的部署文件用rar软件压缩取名为day26.rar,按照视频操作将名称修改为day26.war(黑马视频教程说war和rar大部分是相同的)
3、将day26.war拷贝到tomcat的安装目录的webapps文件夹下,比如我的是D:\tomcat\apache-tomcat-8.5.31\webapps
4、在D:\tomcat\apache-tomcat-8.5.31\bin目录下执行startup.bat文件,卢纶会在webapps目录下产生一个day26的文件夹,结果没有产生.
5、查看logs文件夹下的catalina.2020-03-13.log(注意该文件时间信息)日子文件信息,拖到最后面,逐条网上看,发现哟一个deployWAR Error deploying web application archive。
6、百度查询发现很多人出现该错误是因为tomcat的servlet.jar版本和IDEA不兼容,查看自己版本信息都是匹配的。不知为何,后来怀疑是不是应该用专用压缩war软件压缩。为了快速测试,没有下载WAR压缩软件,而是通过window的cmd命令直接进行压缩,貌似当时装IDEA时自动会有war压缩软件插件,也不管,试试。结果OK
二、解决方法
1、用管理员身份运行cmd。
2、使用cd命令切换到out文件夹下我们需要部署的文件夹下。
2.1 cmd默认是c盘,我的放在e盘,因此使用 e:先切换到e盘
2.2 使用cd命令切换到对应文件夹下:cd JAVA_WORK\ideaprojects3\out\artifacts\day26Test_war_exploded
3、执行命令 jar -cvfM0 day26.war ./ 其中day26.war名字根据自己项目定。该命令是将当前目录下的所有文件打包成一个day26.war,注意:按确定键执行后要等待后台压缩完成