【问题标题】:How can I configure JBoss 4.23 to accept long timeout connection?如何配置 JBoss 4.23 以接受长超时连接?
【发布时间】:2012-09-18 02:34:59
【问题描述】:

所有,我正在做一个需要从 .net 上传大文件(200MB)到 JBoss 的项目。 到目前为止,我已经为 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 连接是否有任何超时配置?谢谢。

【问题讨论】:

    标签: file-upload jboss httpwebrequest


    【解决方案1】:

    您可能遇到了this bug。如果您使用的是 Tomcat Native 库,请尝试停用它们以查看它是否可以正常工作。或者使用带有 mod_proxy 的 Apache httpd 服务器并在 JBoss 服务器上使用 AJP 连接器 - 如果它确实是 HTTP 连接器中的错误,那可能是一种解决方法。

    但要回答有关超时的问题,请查看文件 server/default/deploy/jboss-web.deployer/server.xml(如有必要,将 default 替换为您正在使用的配置)。确保在元素<Connector port="8080" ... 中,属性disableUploadTimeout 设置为true。有关此属性和连接器配置的更多信息,请参阅docs

    【讨论】:

    • 我创建了一个新帖子here,请帮忙查看。谢谢。
    猜你喜欢
    • 2012-12-06
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 1970-01-01
    • 2013-06-28
    • 2019-05-04
    • 1970-01-01
    相关资源
    最近更新 更多