Ho bisogno di aiuto per capire perché un paio delle mie applicazioni web generano in modo intermittente 404 errori durante il tentativo di creare un JSP. Uno di questi ha accesso diretto a JSP e l'altro ha un servlet che sta inoltrando a un JSP. Le pagine funzionano la maggior parte del tempo, ma occasionalmente generano un 404. Se l'utente aggiorna il proprio browser per 1-3 volte, la pagina riprende a funzionare senza alcuna modifica richiesta.Perché il mio server Tomcat genera 804 intermittenti durante la compilazione di JSP?
Ecco un esempio dell'errore come si vede nel browser web (Chrome): type: Status report message: /app_root/my_page.jsp description: The requested resource is not available
Il problema sembra essere correlato alla ricompilazione le pagine JSP. Il file .war e la cartella espansa non sono stati modificati. Ci sono sempre tre errori nei log che corrispondono a ogni errore 404: WARNING: Failed to delete generated class file [D:\Apache Software Foundation\Tomcat 7.0\work\Catalina\localhost\app_root\org\apache\jsp\my_005fpage_jsp.class] May 19, 2015 6:32:24 AM org.apache.jasper.compiler.Compiler removeGeneratedFiles
WARNING: Failed to delete generated Java file [D:\Apache Software Foundation\Tomcat 7.0\work\Catalina\localhost\app_root\org\apache\jsp\my_005fpage_jsp.java] May 19, 2015 6:32:24 AM org.apache.jasper.compiler.Compiler generateJava
WARNING: Failed to delete generated Java file [D:\Apache Software Foundation\Tomcat 7.0\work\Catalina\localhost\app_root\org\apache\jsp\my_005fpage_jsp.java]
Io corro Java 1.7 su Tomcat 7.0.53. Tomcat è in esecuzione su un server Windows 2008 R2.
Ecco cosa ho provato finora, in base alle informazioni che ho trovato da Google. Tuttavia, gli anni 404 continuano.
- Windows disattivato l'indicizzazione su tutta la directory di Tomcat
- spento modalità di sviluppo nel mio ambiente di produzione
- Aumento modificationTestInterval nel mio ambiente di QA da quello predefinito (4 secondi) al 3600 (1 ora) [Nota: è attualmente impostato su 0 per provare ad aiutarmi a riprodurre il problema]
- Modificato il proprietario nella directory di lavoro Tomcat come lo stesso id dell'ID in cui viene eseguito il servizio.
Sono in procinto di disattivare l'anti-virus nella directory di lavoro per vedere se questo aiuta.
Mentre questo problema si verifica sui miei server prod e QA, non si verifica per me sulla mia istanza Tomcat locale. In effetti, devo ancora vedere il problema dalla mia workstation anche quando eseguo le applicazioni QA e Prod. Il problema è stato visto solo da altre persone.
Si è cercato di eliminare file di classe generata manualmente mentre si è connessi come un utente con cui Tomcat è in esecuzione? – Rajesh
Ho appena provato a farlo manualmente. Ha funzionato fintanto che l'ho fatto con i privilegi di amministratore - aprendo cmd con i privilegi di amministratore o rispondendo al pop-up quando si cancellava attraverso Windows Explorer. – Spiritis
La disattivazione della scansione antivirus non ha aiutato. Ulteriori test hanno rivelato che questo problema si verifica solo quando il servlet sta inoltrando al JSP. L'accesso al JSP funziona correttamente. Ho appena modificato la directory di lavoro per rendere esplicitamente il controllo completo dell'account del servizio Tomcat. Ciò mi consente di eliminare i file con quell'ID senza dover autorizzare l'accesso come amministratore. – Spiritis