java web server-file appena creato non trovato dal browser, fino al riavvio del server


Ho un server Web tomcat 7.0 sul mio computer locale, quando faccio una chiamata GET al server creo un file (immagine), lo salvo sul server e fornisco al browser l'URL da recuperare.

Il browser ottiene un 404 "file non trovato" per l'URL, anche dopo aver aggiornato il browser stesso 404. Solo dopo aver riavviato il server, il browser trova il file e tutto va come previsto.

Ho provato a dargli i permessi di lettura, ma non è stato d'aiuto.

Dove cercare il problema?

Per maggiori informazioni clicca qui, Versione specifica Servlet: 3.0.

Il file viene salvato in /projectName/WebContent/resources/images.

URL per l'accesso al file: " http://localhost:8080/projectName/resources/images/2.png."

Prima che venga restituita una risposta alla chiamata GET, il file esiste già (anche il file non viene trovato dopo l'aggiornamento del browser, ovvero un'altra chiamata).

Per quanto riguarda le impostazioni della cache, non ne ho, ecco il mio 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>
Author: Cœur, 2014-08-04

1 answers

Se questo fa parte del percorso dell'applicazione, presumo identificato in un contesto.xml, quindi non sarà visibile fino a quando il contesto non verrà ridistribuito. Quando un contesto viene distribuito, viene copiato per funzionare ed eseguito da lì. Solo WEB-INF / web.xml viene guardato per le modifiche, le modifiche ad altri file non dovrebbero avere alcun effetto (ad eccezione di JSP se si esegue in modalità dev).

  1. È possibile memorizzare i file al di fuori di qualsiasi percorso di cartella webapp, questa è una buona pratica
  2. Scrivi un servlet per recuperarli da quella directory per esempio / getpic / filename.png guarderebbe dentro c:\images\filename.png per il file, e lo streaming di nuovo all'utente.
 0
Author: Tony BenBrahim, 2014-08-08 14:58:59