Java 编译为WAR时缺少文件

Java 编译为WAR时缺少文件,java,maven,intellij-idea,war,Java,Maven,Intellij Idea,War,我有一个很有趣的问题。我运行maven将Servlet站点编译成单个WAR文件。这在我的本地机器上运行完全正常;即使我将部署设置更改为仅使用war文件,它也可以正常工作。然而,当我将WAR文件部署到服务器时,我得到了404个错误。我不是WAR文件的专家,所以是否有某种内部文件指定了我需要查看的资源的位置?首先尝试解压缩WAR(WAR、JAR、EAR都是zip文件),看看您的文件是否确实存在,验证解压缩的WAR是否包含: dir WEB-INF 文件WEB-INF/WEB.xml dir WEB

我有一个很有趣的问题。我运行maven将Servlet站点编译成单个WAR文件。这在我的本地机器上运行完全正常;即使我将部署设置更改为仅使用war文件,它也可以正常工作。然而,当我将WAR文件部署到服务器时,我得到了404个错误。我不是WAR文件的专家,所以是否有某种内部文件指定了我需要查看的资源的位置?

首先尝试解压缩WAR(WAR、JAR、EAR都是zip文件),看看您的文件是否确实存在,验证解压缩的WAR是否包含:

  • dir WEB-INF
  • 文件WEB-INF/WEB.xml
  • dir WEB-INF/lib和应用程序所依赖的JAR
  • dir WEB-INF/classes和*.class文件,您的servlet和相关类应该在其中(如果您决定将它们放在那里,而不是WEB-INF/lib中的jar中)
  • 根目录中的静态资源
你可以对你的战争中缺少的东西做出结论


您也可以尝试手动构建自己的war(使用我上面提到的结构创建一个zip文件,并将其重命名为*.war),如果您在使用IDE的选项进行构建时遇到问题

由于war是一个存档,因此可能需要访问资源和an。您能否更具体地说明404错误?导致这些异常的原因是什么?@benjiman它在Chrome中,所以我看到的是,当我将WAR文件部署到外部服务器时,无法找到该文件。我刚刚用cd翻阅了WAR文件,我可以看到那里的文件。我缺少的文件是两个javascript文件,这很奇怪,因为还有其他javascript文件,它们加载得很好?