0

すべて、.net から JBoss に大きなファイル (200MB) をアップロードする必要があるプロジェクトに取り組んでいます。これまでのところ、タイムアウト プロパティを HttpWebRequest オブジェクトに設定しましたが、それでも JBOSS コンソールで例外が発生しました。

10:31:06,896 ERROR [DeployServlet] Failed to upload file.
org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. null
     at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:359)
     at com.accela.deploy.servlet.RequestHandler.getUploadFileFromRequest(RequestHandler.java:86)
     at com.accela.deploy.servlet.DeployServlet.doPost(DeployServlet.java:118)
     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 com.accela.commom.filter.AuthFilter.doFilter(AuthFilter.java:99)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
     at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
     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:233)
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
     at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
     at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
     at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
     at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:615)
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
     at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877)
     at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:594)
     at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1733)
     at java.lang.Thread.run(Thread.java:722)
Caused by: java.io.IOException
     at org.apache.coyote.http11.InternalAprInputBuffer.fill(InternalAprInputBuffer.java:801)
     at org.apache.coyote.http11.InternalAprInputBuffer$SocketInputBuffer.doRead(InternalAprInputBuffer.java:830)
     at org.apache.coyote.http11.filters.IdentityInputFilter.doRead(IdentityInputFilter.java:116)
     at org.apache.coyote.http11.InternalAprInputBuffer.doRead(InternalAprInputBuffer.java:738)
     at org.apache.coyote.Request.doRead(Request.java:427)
     at org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:304)
     at org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:419)
     at org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:327)
     at org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:193)
     at org.apache.commons.fileupload.MultipartStream$ItemInputStream.makeAvailable(MultipartStream.java:959)
     at org.apache.commons.fileupload.MultipartStream$ItemInputStream.read(MultipartStream.java:887)
     at java.io.InputStream.read(InputStream.java:101)
     at org.apache.commons.fileupload.util.Streams.copy(Streams.java:94)
     at org.apache.commons.fileupload.util.Streams.copy(Streams.java:64)
     at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:354)
     ... 26 more
10:31:07,973 INFO  [RequestHandler] Failed

これは、http 要求のタイムアウトの問題によるものだと思います。JBoss が長時間の HTTP 接続を受け入れるためのタイムアウト設定はありますか? ありがとう。

4

1 に答える 1

1

このバグに遭遇した可能性があります。Tomcat Native ライブラリを使用している場合は、非アクティブ化して動作するかどうかを確認してください。または、mod_proxy で Apache httpd サーバーを使用し、JBoss サーバーで AJP コネクタを使用します。これが本当に HTTP コネクタのバグである場合は、回避策になる可能性があります。

ただし、タイムアウトに関する質問に答えるには、ファイルを確認してくださいserver/default/deploy/jboss-web.deployer/server.xml(必要に応じて、使用している構成に置き換えdefaultてください)。<Connector port="8080" ...要素で属性disableUploadTimeoutが に設定されていることを確認してくださいtrue。この属性とコネクタ構成の詳細については、ドキュメントを参照してください。

于 2012-09-26T22:35:42.247 に答える