Upload Struts Tomcat

4 respostas
biharck

Pessoal, estou com um grande problema.
Tenho minha app hospedada na LocaWeb feita em Struts com servidor de app Tomcat 6.0.
Até ontem tudo funcionava normalmente em upload de arquivos.
a partir de hoje, qq upload superior a 10kb da a seguinte exceção

“Processing of multipart/form-data request failed. Read timed out”.

alguém tem alguma luz?

4 Respostas

peczenyj
  1. Tem espaço suficiente pro upload?
  2. O suporte da locaweb ta te ajudando? De repente colocaram uma regra maluca em algum firewall/proxy reverso/balanceador de carga que te atrapalha. Seria bom vc investigar todo o request com algum tipo de debugger remoto (se bem que nunca fiz isso nesse nivel) ou então olhar os requests no firebug e ver se rola alguma pista a mais.
  3. Tem algo estranho no log da sua aplicação? Vc pode estar vendo o efeito colateral de outra parada.
biharck

1) Tem espaço suficiente pro upload?
Sim, verifiquei isso tb, apesar de serem arquivos bem pequenos...

2) O suporte da locaweb ta te ajudando? De repente colocaram uma regra maluca em algum firewall/proxy reverso/balanceador de carga que te atrapalha. Seria bom vc investigar todo o request com algum tipo de debugger remoto (se bem que nunca fiz isso nesse nivel) ou então olhar os requests no firebug e ver se rola alguma pista a mais.
Debuger remoto, não consegui, ningém da locaweb sabe me falar nada direito, demorei 4 horas até conseguir uma cópia do server.xml

3) Tem algo estranho no log da sua aplicação? Vc pode estar vendo o efeito colateral de outra parada.

log da app somente esta exception ao enviar arquivos maiores de 10kb
org.apache.commons.fileupload.FileUploadException: Processing of multipart/form-data request failed. Read timed out

at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:384)

at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:268)

at org.apache.struts.upload.CommonsMultipartRequestHandler.handleRequest(CommonsMultipartRequestHandler.java:185)

at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:405)

at org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:818)

at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:194)

at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)

at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at br.com.vitapres.portal.filtro.LoginFilter.doFilter(LoginFilter.java:57)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at br.com.locaweb.tomcat.LocaWebValve.invoke(LocaWebValve.java:134)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)

at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)

at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)

at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)

at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)

at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:686)

at java.lang.Thread.run(Thread.java:619)
biharck

Solução:
Pessoal, consegui resolver o problema e gostaria de postar para ajudá-los caso tenham o mesmo problema algum dia:

dentro do arquivo server.xml existem alguns parâmetros que deve ser configurados para evitar este tipo de situação, são eles:

connectionTimeout=“0”
disableUploadTimeout=“true”

dentro da tag .

Feito isso, não se limita o tempo de upload de um arquivo e desabilita o timeout de upload de uma aplicação.

caso alguém tenha interesse em realizar debug remoto, achei um tutorial bom e simples.

http://forum-informatico.forumeiros.com/servidores-aplicacionais-f14/remote-debug-com-eclipse-e-tomcat-t292.htm

Obrigado a todos.

peczenyj

Então essa configuração mudou sem vc saber??

Isso faz parte de uma disciplina chamada gerencia de configuração. Vc precisa de ferramentas que evitem que esse tipo de coisa te pegue com as calças na mão – ja sofri muito com isso, hoje eu comparo md5 de arquivo de configuração, permissão, olho a quanto tempo os processos não foram reiniciados, tudo com a paranoia de outra vez fazer “feio” pro chefe.

Criado 4 de junho de 2010
Ultima resposta 4 de jun. de 2010
Respostas 4
Participantes 2