2013-06-05 43 views
5

ユーザーが大きなファイル(300 MB以上)をアップロードするSpringアプリケーションがあります。ローカルでは、完全に正常に動作しています。しかし、Liveで自分のアプリケーションを使用しようとすると、ほとんどの場合失敗します(何度か成功します)。ここにコンソールからのログがあります。誰もエラーを取り除く方法に私を助けることができます。私はJQueryチャンクファイルのアップロード機能を使用しています。サーバーはTomcat 6です。ClientAbortException:大きなファイルのアップロード中にjava.io.IOExceptionが発生する

17:02:28,395 DEBUG SessionFactoryUtils:793 - Closing Hibernate Session 
File Path:/home/borneind/ty/uploads/7397758850/2190167412/1366559675908_06 - Mergel - Mergedelica.wav 
17:02:31,036 DEBUG ExceptionHandlerExceptionResolver:132 - Resolving exception from handler [public void com.jmacksoft.common.controller.TranceController.getDocumentFileContent(javax.servlet.http.HttpServletResponse,javax.servlet.http.HttpServletRequest,java.lang.String,java.lang.String,java.lang.String,java.lang.String) throws java.io.IOException]: ClientAbortException: java.io.IOException 
17:02:31,037 DEBUG ResponseStatusExceptionResolver:132 - Resolving exception from handler [public void com.jmacksoft.common.controller.TranceController.getDocumentFileContent(javax.servlet.http.HttpServletResponse,javax.servlet.http.HttpServletRequest,java.lang.String,java.lang.String,java.lang.String,java.lang.String) throws java.io.IOException]: ClientAbortException: java.io.IOException 
17:02:31,037 DEBUG DefaultHandlerExceptionResolver:132 - Resolving exception from handler [public void com.jmacksoft.common.controller.TranceController.getDocumentFileContent(javax.servlet.http.HttpServletResponse,javax.servlet.http.HttpServletRequest,java.lang.String,java.lang.String,java.lang.String,java.lang.String) throws java.io.IOException]: ClientAbortException: java.io.IOException 
17:02:31,038 DEBUG DispatcherServlet:910 - Could not complete request 
ClientAbortException: java.io.IOException 
    at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:358) 
    at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:434) 
    at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:349) 
    at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:381) 
    at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:370) 
    at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:89) 
    at org.springframework.util.FileCopyUtils.copy(FileCopyUtils.java:113) 
    at com.jmacksoft.common.controller.TranceController.getDocumentFileContent(TranceController.java:603) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:212) 
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) 
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) 
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900) 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827) 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) 
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) 
    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 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263) 
    at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:852) 
    at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:584) 
    at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1508) 
    at java.lang.Thread.run(Thread.java:662) 
Caused by: java.io.IOException 
    at org.apache.coyote.http11.InternalAprOutputBuffer.flushBuffer(InternalAprOutputBuffer.java:692) 
    at org.apache.coyote.http11.InternalAprOutputBuffer$SocketOutputBuffer.doWrite(InternalAprOutputBuffer.java:722) 
    at org.apache.coyote.http11.filters.IdentityOutputFilter.doWrite(IdentityOutputFilter.java:118) 
    at org.apache.coyote.http11.InternalAprOutputBuffer.doWrite(InternalAprOutputBuffer.java:528) 
    at org.apache.coyote.Response.doWrite(Response.java:560) 
+0

tomcatサーバー設定でタイムアウト設定を設定できます。 conf内のserver.xmlを確認してください。あなたの問題を解決するかもしれません。 dfaultは6秒に設定されています。 http://tomcat.apache.org/connectors-doc/generic_howto/timeouts.html – dinesh707

+0

私は以下の設定をserver.xmlに持っています...

+0

lareger番号を試しましたか?私は0が永遠に定義されることを知っていますが、まだ大きな数字を試しています – dinesh707

答えて

2

ページが2000回以上閲覧されたという事実に基づいてゾンビを目覚める。
元のポスターにはまだ遅すぎますが、今後の読者にはあなたの解決策があります。

jqueryを使用している場合は、非同期要求を完了するために、より長いタイムアウト値を設定する必要があります。このblog entryはこれを行う1つの方法を提供します。あなたの場合はログインしていませんが、この例は必要なものを提供するはずです。投稿を引​​用する...

...この値をスクリプト全体に任意に振りかけるのではなく、集中化する方法を見つけることをおすすめします。制限された環境では時間切れにならないタイムアウトを選択しないように注意してください。あなたの開発経験は、ほとんどの場合、野生の経験より優れています。

関連する問題