2014-07-10 13 views
5

Desidero impedire che lo SocketTimeoutException si verifichi dopo circa 1 minuto se un utente tenta di caricare un file di grandi dimensioni da un modulo di caricamento nell'applicazione Web Grails. So che questa è una cosa di Tomcat piuttosto che una cosa di Grails, ma sto faticando un po 'a modificare server.xml usando il blocco eventi eventConfigureTomcat in _Events.groovy.Timeout connessione Grails durante il download di file di grandi dimensioni

Secondo il tomcat docs c'è una proprietà disableUploadTimeout che devo impostare per true sul connettore, ma quando provo questo nel blocco eventConfigureTomcat, ottengo il seguente errore quando la mia applicazione si avvia:

| Running Grails application 
| Error Server failed to start: No such property: disableUploadTimeout for class: org.apache.catalina.connector.Connector (Use --stacktrace to see the full trace) 

il contenuto del mio _Events.groovy aspetto:

eventConfigureTomcat = { tomcat -> 
    tomcat.connector.disableUploadTimeout = "true" 
} 

E questo errore non ha senso - secondo il javadoc, non v'è alcuna proprietà disableUploadTimeout su quella implementazione del connettore.

Cosa sto sbagliando? Come dovrei impostare questa proprietà, oppure esiste un altro modo per evitare il timeout dei caricamenti di file di lunga durata?

+0

qual è il messaggio di errore esatto si ottiene in catalina.out quando si verifica il timeout? – rdmueller

+1

Nota che, in base ai documenti che hai collegato, 'disableUploadTimeout' imposta di default a' true', e dovresti impostarlo su 'false' in modo da poter impostare un periodo di timeout più lungo per' connectionUploadTimeout'. (Purtroppo, non so come impostare correttamente quei valori.) –

risposta

2

non è stato controllato, ma dando un'occhiata alla documentazione di tomcat, la configurazione che si desidera modificare sembra essere un attributo del Connector.

Il connettore ha un metodo chiamato setAttribute. Quindi credo che si riuscirà con il seguente codice:

eventConfigureTomcat = { tomcat -> 
    tomcat.connector.setAttribute('disableUploadTimeout', true); //may 'true' 
} 

devo ammettere che non ho potuto verificare questo codice me stesso ...

Aggiornamento: secondo @ Charles-Wood, deve essere impostato su false e non su true.

PS: se si inviano ulteriori informazioni su come riprodurre il problema, io darò una prova

+0

il mio connettore è nullo. Qualche indizio? – Seva

Problemi correlati