spring mvc app 运行 在服务器上出现 404 错误,但在 devbox 上没有

404 errors in spring mvc app running on server, but not on devbox

我在远程 CentOS 7 网络服务器上的 tomcat 8 上有一个 spring mvc 应用程序 运行ning。当我单击指向调用某些 JSP 的某些 url 模式的链接时,它会出现 404 错误。相同的 war 文件能够 运行 在我本地的 CentOS 7 devbox 上 localhost:8080 而不会抛出 404 错误,并且 运行s 在我的 devbox 上的 eclipse 中使用 Run As..Run on Server,没有抛出 404 错误。 那么,为什么同一个 war 文件在服务器上抛出 404 错误,而在本地 devbox 上却没有?

我已确认 JSP 文件确实存在于服务器上,方法是键入 cd /opt/tomcat/webapps/ROOT/WEB-INF/jsp,然后键入 ls -al,并重复该文件夹的子目录。

在我的本地 devbox 上,所有 tomcat 子目录和文件都归 root 所有。在删除服务器上,一些文件夹归用户所有,该用户也是 wheel 组的成员。所以我将服务器上 webapps 目录的所有权更改为 root,但问题仍然存在。我还能尝试什么?

运行 tomcat 作为非 root 用户是首选,因为在 root 模式下打开端口可能存在同样的安全问题。您可以将用户和组创建为 tomcat。并 chown tomcat:tomcat 到 tomcat 目录。但你还需要记住每次将 webapp 放入文件夹时具有相同的 tomcat:tomcat 权限。我个人建议使用 tomcat 作为 root。因为我没有看到任何安全问题,而不是非 root 用户的大量维护。