java - Servlet 3 网络片段 - 不提供 META-INF 文件夹中的静态内容

标签 java tomcat servlets web-fragment

我无法决定是我没有正确理解 Servlet 3.0 规范还是 Tomcat 中存在错误。

这是我的情况。我有一个包含 jar 项目的 Web 应用程序。 Web 应用程序使用 Jersey 2.9 定义了一组 REST 端点。 jar 项目还定义了 REST 端点(也使用 Jersey 2.9)并且在 META-INF/resource 目录中有静态内容。 jar 中 META-INF 目录的结构如下所示:

META-INF
  |- resources
    |- test.html
    |- testfolder
      |- test2.html

我在 Tomcat 8.5.16 上运行它。当我运行它时,我得到以下结果:

  1. WAR REST 端点:成功
  2. JAR REST 端点:成功
  3. /test.html:成功
  4. /testfolder/test2.html - 404 失败

WAR 项目没有静态内容,因此不会发生冲突。我检查了 WAR 中的 JAR 文件,它包含如上所示的结构。

关于为什么提供顶级 html 文件而不是文件夹中的文件的任何想法?

最佳答案

将您的资源放在名为/static 的 WAR 中的顶级文件夹中。然后 Tomcat 将为它们提供服务。还有其他文件夹名称执行相同的操作。

关于java - Servlet 3 网络片段 - 不提供 META-INF 文件夹中的静态内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45442645/

相关文章:

java - 用于具有基本身份验证的 SOAP wsdl 的 AXIS2 Java 客户端

java - Hibernate 不允许带有 int 字段的嵌入对象为空?

java - 使用 jooq/postgresql 从 json 中提取键/值对 - java

tomcat - Grails - 在 run-app 上使用 localhost 的子域

java - 我可以将应用程序热部署到 Tomcat 中吗?

java - 控制 JVM 大小

java - 如果语句和 && 给出 IDE 错误 'Syntax error on token "=", <= expected'

jakarta-ee - 使用 JAAS 删除前一个 session ,如果它已经处于事件状态(如果用户忘记注销)

java - 将 java servlet 作为独立进程运行

java - 如何处理 MaxUploadSizeExceededException : Maximum upload in servlet