java web 服务器 - 浏览器找不到新创建的文件,直到服务器重新启动

标签 java tomcat7 http-status-code-404 file-not-found

我的本​​地计算机上有一个 tomcat 7.0 Web 服务器,当对服务器进行 GET 调用时,我创建一个文件(图像),将其保存在服务器上并向浏览器提供要获取的 URL。

浏览器收到 URL 的 404“文件未找到”,即使在我刷新浏览器后也是同样的 404。 只有在我重新启动服务器后,浏览器才会找到该文件,一切都会按计划进行。

我尝试授予它读取权限,但没有帮助。

去哪里寻找问题?

Tomcat 版本:Apache Tomcat/7.0.12, Servlet 规范版本:3.0。

文件保存在/projectName/WebContent/resources/images 下。

访问文件的 URL:“http://localhost:8080/projectName/resources/images/2.png 。”

在返回 GET 调用的响应之前,文件已经存在(浏览器刷新后也找不到该文件 - 意味着另一个调用)。

至于缓存设置,我没有,这是我的web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>ProjectName</display-name>
<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/configuration/dispatcher-servlet.xml</param-value>        
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>WEB-INF/configuration/applicationContext.xml</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>

最佳答案

如果这是您的应用程序路径的一部分,我假设在 context.xml 中进行了标识,那么在重新部署上下文之前它将不可见。当部署上下文时,它会被复制到工作并从那里运行。仅监视 WEB-INF/web.xml 的更改,对其他文件的更改不应产生任何影响(如果在开发模式下运行,则 JSP 除外)。

  1. 您可以将文件存储在任何 webapp 文件夹路径之外,这是最佳实践
  2. 编写一个 servlet 来从该目录中获取它们,例如/getpic/filename.png 将在 c:\images\filename.png 中查找该文件,并将其流式传输回用户。

关于java web 服务器 - 浏览器找不到新创建的文件,直到服务器重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25122883/

相关文章:

java - jBehave 不起作用?

tomcat - IntelliJ IDEA 中存储的 tomcat 配置在哪里

tomcat - 如何将我的应用程序参数添加到 localhost_access_log.<date>.text 文件

magento - Magento主页有效,但其他所有页面均出现404错误,并且迁移后无法访问后端

java - 为所有 404 响应创建 servlet 过滤器

java - Camunda BPM 引擎中的 Thrift 调用

java - 如何从 EJB 捕获运行时异常?

java - 理解Java中字节的掩码

mongodb - Grails Mongo-Tomcat无法停止创建连接

php - Laravel - 路由不起作用