在Linux系统的云服务器上部署JavaWeb项目时遇500报错 解决记录
2023.02.07:
背景
昨天在实施如题操作时,按照我在网上找到的博文指导(链接:https://blog.csdn.net/RongLin02/article/details/117562075),成功操作了之前的几个步骤:
安装Java及配置其环境变量(环境变量这篇博客里没有写要自己去搜一下);
安装及配置MySQL8.0;
建库与建表;
安装Tomcat();
打包war包并部署在服务器上(上文博主用的是eclipse,我用的是idea,实施了这篇博文的操作:https://blog.csdn.net/qq_34872748/article/details/100390922)。
在完成了以上步骤后,理论上在本地的浏览器中输入http://公网ip:8080
加上war包名称(例如我这个项目就是:http://XXX.XXX.XXX.XX:8080/contract_management_war/
(后面跟不跟index.jsp都行))就可以浏览这个web项目的index页面了
而我也确实可以访问:
报错
但是从这开始就有问题了。点击上面的“查询所有合同信息”之后,项目会去执行一个我写的servlet程序叫做recordListServlet,这个时候便开始报错
报错信息大概就是说没有找到javax下的servlet等等这些类。
这时在这个报错页面刷新几次可能会刷出来另一个报错:
这个大概是讲没有找到list.jsp文件(RecoreListServlet执行后跳转到的jsp页面),
这就很奇怪,因为我把这个项目部署在我PC上的tomcat上的时候,访问这些网页,运行servlet是完全没问题的。
代码执行到我勾出来的这里出问题,返回idea看代码,19行其实是doGet调用了doPost。
因为这两个方法作用大致相同,很难记住HTML里哪个组件具体调用哪个方法,我跟的一个老师就直接在一个函数里调用另一个,这样代码就只用写一遍。
所以问题就在42行,这里是使用了getRequestDispatcher()重定向到list.jsp页面,但在这之前也有request里方法的调用,所以应该不是HttpServlet接口
其实见过
事实上关于这个报错,其实在PC机上调试的时候也遇到过,当时查到是因为tomcat10.0及以后不再使用javax.*包了,改为使用jakarta.*。所以当时就在项目的lib文件夹里引入了jakarta.servlet.jsp.jstl-api-2.0.0.jar和
jakarta.servlet.jsp.jstl-2.0.0.jar这两个包,当时问题就解决了。
(下面这个的javax.servlet.jsp.jstl.jar其实不是必要的,去掉或者留着报错都是那两行代码)
jsp-api.jar和servlet-api.jar
我搜索找不到list.sjp的那个报错信息,在网上看到一篇和我报错差不多的帖子(https://blog.csdn.net/s_monster_/article/details/100152769),这个作者也是在本地部署没有问题,放到Linux上就会报错。上面讲是这两个包的问题,说缺少就引入进来,多了就删除。
今天发现的思路:
iml文件、xml文件
jsp-api.jar和servlet-api.jar
library
Linux卸载openjdk安装jdk和JAVA_HOME
配CATALINA_HOME没有成功
前面两个牵扯到Linux启动和关闭tomcat出问题
CLASSPATH
tomcat的jar包加载机制
war-tracker可能会有问题
idea项目中的web文件夹没有小蓝点会导致404
war文件解压后的文件结构与war:exploded不一样
standard.jar
其他的.jsp文件都能打开,只有list.jsp不行,所以问题应该出在jsp
jakarta.servlet.jsp.jstl-2.0.0.jar和jakarta.servlet.jsp.jstl-api-2.0.0.jar
甚至为它俩加了classpath
换成tomcat9解决了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了