关于Linux权限引起的Tomcat项目404问题

今天遇到了一个很奇怪的问题,搞了半天原来是Linux权限造成的

介绍一下问题,一个订单详情页面请求,如下图,应该正常显示页面

关于Linux权限引起的Tomcat项目404问题

今天遇到的问题是,依然是这么一个url,访问时候却成了404页面了。

关于Linux权限引起的Tomcat项目404问题

乖乖隆地洞,怎么突然就变成这样了呢,想了想项目的架构,域名请求是先由nginx进行动态负载均衡转发给Tomcat进行处理的,那么我直接根据IP+端口请求呢,定位一下问题根源

关于Linux权限引起的Tomcat项目404问题

查询了一下项目日志,日志中显示已经进入了init.do方法,也能正常的请求接口,只是在进行页面转发时出现了404状态

那是不是因为没有找到这个init.jsp页面呢?

看了下项目结构,项目结构依然没有问题啊,文件也存在。

最后打开了Tomcat的catalina.out日志,发现有如下错误存在

关于Linux权限引起的Tomcat项目404问题

WARNING: Failed to delete generated class file [/app/tomcat_v7/work/Catalina/localhost/trade/org/apache/jsp/WEB_002dINF/jsp/pay/init_jsp.class] 
WARNING: Failed to delete generated Java file [/app/tomcat_v7/work/Catalina/localhost/trade/org/apache/jsp/WEB_002dINF/jsp/pay/init_jsp.java] 
WARNING: Failed to delete generated Java file [/app/tomcat_v7/work/Catalina/localhost/trade/org/apache/jsp/WEB_002dINF/jsp/pay/init_jsp.java]

无法删除生成的类文件

无法删除?!  是不是没有权限,看了下Catalina/localhost目录和文件,原来是root所有者,仔细想了想,之前这个项目在部署时候使用的是root用户权限,后来在做项目补丁时,用的是was权限,虽然在当时项目修改了was所属权限,但是后来的日志和缓存并没有给root权限,原来是这个问题。

解决方案是,root用户进入Catalina/localhost。将其目录内容缓存删除,然后再使用was普通用户进行重启项目,问题解决!


未经允许请勿转载:程序喵 » 关于Linux权限引起的Tomcat项目404问题

点  赞 (0) 打  赏
分享到: