我们正在使用 Web 片段来允许我们的多个位置使用其他 JSP、servlet、Web 服务等来扩展我们的主 Web 应用程序,以满足他们的需求。这些往往是特定于每个位置的需求,我们公司开发人员不想负责维护每个位置代码。
按照通常的结构,所有 JSP 文件都被放置在src/main/resources/META-INF/resources
适合所述功能的文件夹下并根据需要放入文件夹中(例如common/scripts/...
common/styles/...
local/links.jsp
)。
但是,其中一个位置有一个名为 resources 的文件夹,他们将其移到了他们的片段项目中,src/main/resources/META-INF/resources/resources
. 现在该文件夹下的任何文件都会返回 404 错误。但是,如果将名称更改为resource
,则 JSP 将被毫无问题地检索。
我查看了Servlet 3.0 规范和Servlet 4.0 规范,我并没有真正注意到有关保留名称等的任何内容。
web-fragment.xml 非常不具描述性,仅包含两个“名称”元素
<?xml version="1.0" encoding="UTF-8"?>
<web-fragment id="WebFragment_ID" version="4.0" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-fragment_4_0.xsd">
<display-name>topeka</display-name>
<name>topeka</name>
</web-fragment>
这不是 Spring 应用程序,纯粹是在 Tomcat 上运行的 Java。那么这个问题仅仅是Tomcat被双重“资源”文件夹(/resources/resources
)弄糊涂了还是我错过了其他东西?