【问题标题】:what causes SocketTimeoutException to be raised引发 SocketTimeoutException 的原因是什么
【发布时间】:2013-09-25 13:53:07
【问题描述】:

我的要求是录制用户语音并将其保存在服务器上(同时多个用户)。代码是:

            in = (InputStream) request.getInputStream();                         
            fos = new FileOutputStream(f1);
            int read = 0;
            while ((read = in.read()) != -1) {
                fos.write(read);
            }
            fos.close();
            in.close();

我在尝试一次为多个用户录制语音时遇到以下异常。对于单个用户,这不会给我任何例外。

java.net.SocketTimeoutException 在 org.apache.coyote.http11.InternalAprInputBuffer.fill(InternalAprInputBuffer.java:796) 在 org.apache.coyote.http11.InternalAprInputBuffer$SocketInputBuffer.doRead(InternalAprInputBuffer.java:830) 在 org.apache.coyote.http11.filters.IdentityInputFilter.doRead(IdentityInputFilter.java:116) 在 org.apache.coyote.http11.InternalAprInputBuffer.doRead(InternalAprInputBuffer.java:738) 在 org.apache.coyote.Request.doRead(Request.java:427) 在 org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:304) 在 org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:386) 在 org.apache.catalina.connector.InputBuffer.readByte(InputBuffer.java:317) 在 org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:105) 在 CommonPackage.Upload.processRequest(Upload.java:78) 在 CommonPackage.Upload.doPost(Upload.java:115) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:710) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 在 org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877) 在 org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:594) 在 org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675) 在 java.lang.Thread.run(Thread.java:619)

谢谢

【问题讨论】:

    标签: servlets


    【解决方案1】:

    您很可能会收到此异常,因为您尝试从请求中读取数据但它超过了默认超时值。

    在 tomcat 中,默认值为 60 秒。请参阅以下指南以了解如何调整连接器的连接超时:http://tomcat.apache.org/tomcat-7.0-doc/config/http.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-10
      • 1970-01-01
      • 1970-01-01
      • 2016-08-28
      • 2016-09-01
      • 2011-12-04
      相关资源
      最近更新 更多