写在前面:本文为个人寻找答案的历程记录,结果是tomcat10在运行spring框架程序的时候会缺少一个类,换到tomcat9即可,不爱看碎碎念的答案在这。
最近学校上web课程,有一个作业是在tomcat环境下制作一个网站,这是背景
因为都是刚接触这门课,这类知识,所以老师很贴心地发了一个模板给我们,让我们参考那个制作,问题就出在了这个模板上。
这个模板是打包好的war包文件,理论上放到webapps里可以很顺利地通过浏览器打开,但是很奇怪的是:
但是我的webapps文件夹里又完完整整地躺着这个jpetstore文件甚至还有这个解压缩过后的文件夹,十分费解。
于是我又怀疑是不是tomcat环境出现了问题,所以
???
为什么同在一个文件夹里面的web文件有的能打开有的打不开啊???
好吧,起码验证了不是tomcat环境的问题,那可能问题就在文件上。
新建一个文件夹,随便取个名字,里面随便塞个html
成功
更加坚定了我认为是文件出错了的想法
所以我去翻老师给的教程,源文件重新下载,重启电脑,向能打开的同学要一份完全相同的war……
全部失败。
这时我开始怀疑起了人生,怀疑是不是平时看tom猫搞笑视频太多了导致tomcat来报复我了。
不是环境也不是文件,那到底是谁出了问题呢?
开始病急乱投医
我先是找到了这个
Tomcat可以正常启动,却打不开webapps目录下的html文件_xiaoshijiu333的博客-CSDN博客https://blog.csdn.net/shijiujiu33/article/details/82354384不对啊,一文件拼写错不错误就不说,我都复制粘贴了也不能错吧?二是我连计算机用户名都不敢取中文,怎么会是中文的错误;三更不用说了,这是别人能运行的完完整整的项目,唯独在我的电脑上不能运行,应该也不是。
失败。
有没有可能是listing默认属性错了?改下试试?如何解决Tomcat无法访问webapps文件夹下的文件?_冰块的旅行的博客-CSDN博客_tomcat webapps目录文件不能访问https://blog.csdn.net/qq_38967150/article/details/118722115失败。
是不是tomcat和jdk版本不匹配?
失败。
陷入沉思……
这时在某个网页看到一位前辈说可以看看tomcat报错,所以我又去把tomcat的乱码问题进行了更改。
报错“至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。”(图片丢失)
耶!终于有了进展……
不过这话说了怎么和说了似的,你倒是说哪里出了问题啊(′д` )…彡…彡
不过倒也给我指明了方向,那就是……翻日志!
找到logs里面的localhost
找到出问题的时间点
java.lang.NoClassDefFoundError: javax/servlet/ServletContextListener
去百度
原来还是版本出了问题
下载tomcat9,更改环境变量
成功!
睡觉!