踩坑经历:希望可以很快的帮你定位问题(用jsp虽然简单、直观、快捷,但是遇到这类配置上的问题就比较头疼,所以更多人才会转向springboot、docker部署,不过应用实在太小,没必要占用朋友的服务器空间,所以才用了古老的jsp,一小时搞定需求)
上一篇给小区管理人员提供的小程序,在开发环境运行正常,搬到借用朋友的生产环境时报上面的错误,根据历史经验,先是从一下三个方面进行查找:
一、数据库连接字符串有没有写错,有没有多余空格之类的
二、数据库的权限是否赋权到位,localhost和远程%是否根据需要配置
三、数据库编码以及连接串中是否匹配
一般情况下,查完上面三个就可以解决了,但是这次竟然还是没有,这时只有查tomcat运行日志了(日志文件在tomcat目录下的logs文件夹中,本次查看的catalina.yyyy-mm-dd.log文件),发现有个“org.apache.jasper.compiler.Compiler.removeGeneratedClassFiles 未能删除生成的类文件”错误,到这里问题就找到了,原来是因为我把开发环境的tomcat9直接拷贝到生产环境并手动开启服务,它的编译目录中缓存文件我并没有事先清除,由于jsp运行前是需要先编译的,两个系统不同的用户进行编译就发生了这个问题,进入tomcat所在目录下的/work/Catalina/localhost,把里面的缓存文件全部删了,再运行代码,恢复正常。

博主在将使用JSP开发的小程序从开发环境迁移到朋友的生产环境时遇到了问题,常规的数据库连接检查、权限配置和编码匹配等排查方法并未奏效。通过查看Tomcat日志,发现在不同用户下编译的JSP缓存文件冲突导致错误。清理工作目录下的缓存文件后,问题得到解决,小程序恢复正常运行。这次经历提醒我们在部署时要注意跨环境的用户权限和编译文件处理。
809

被折叠的 条评论
为什么被折叠?



