简体   繁体   English

处理multipart / form-data请求失败。读取超时

[英]Processing of multipart/form-data request failed. Read timed out

Other questions on Stack Overflow have addressed this question, but none of the answers provided have helped me to address the issue. 关于Stack Overflow的其他问题已经解决了这个问题,但是所提供的答案都没有帮助我解决这个问题。

I'm trying to upload a file of anywhere between 10 kB to 16 MB from an applet using Apache HTTP Commons. 我正在尝试使用Apache HTTP Commons从applet上传一个介于10 kB到16 MB之间的文件。 Everything works fine in my local environment. 在我的本地环境中一切正常。

I'm receiving the following exception only on my production server (Tomcat 6.0, https://www.dailyrazor.com/ ), regardless of file size: 我只在我的生产服务器(Tomcat 6.0, https://www.dailyrazor.com/ )上收到以下异常,无论文件大小如何:

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.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:116)
    at com.actura.helper.UploadHelper.processUpload(UploadHelper.java:92)
    at com.actura.voice.upload.FileUploadServlet.process(FileUploadServlet.java:85)
    at com.actura.voice.upload.FileUploadServlet.doPost(FileUploadServlet.java:75)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    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:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    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:298)
    at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
    at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
    at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:769)
    at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698)
    at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
    at java.lang.Thread.run(Thread.java:662)

This is the debugging log of Commons IO: 这是Commons IO的调试日志:

2012-Sep-18 11:26:28,446 [TP-Processor5] com.actura.voice.upload.MonitoredDiskFileItemFactory 
  DEBUG inside MonitoredDiskFileItemFactory constructor (listener) 
2012-Sep-18 11:26:28,794 [TP-Processor5] com.actura.voice.upload.MonitoredDiskFileItemFactory 
  DEBUG inside MonitoredDiskFileItemFactory createItem 
2012-Sep-18 11:26:28,800 [TP-Processor5] com.actura.voice.upload.MonitoredDiskFileItem 
  DEBUG inside MonitoredDiskFileItem constructor 
2012-Sep-18 11:26:28,800 [TP-Processor5] com.actura.voice.upload.MonitoredDiskFileItem 
  DEBUG inside getOutputStream() 
2012-Sep-18 11:26:28,802 [TP-Processor5] com.actura.voice.upload.MonitoredOutputStream 
  DEBUG inside MonitoredOutputStream constructor 
2012-Sep-18 11:26:28,803 [TP-Processor5] com.actura.voice.upload.MonitoredOutputStream 
  DEBUG leaving MonitoredOutputStream contructor 
2012-Sep-18 11:26:28,803 [TP-Processor5] com.actura.voice.upload.MonitoredDiskFileItem 
  DEBUG leaving getOutputStream() 
2012-Sep-18 11:26:28,803 [TP-Processor5] com.actura.voice.upload.MonitoredDiskFileItemFactory 
  DEBUG inside MonitoredDiskFileItemFactory createItem 
2012-Sep-18 11:26:28,803 [TP-Processor5] com.actura.voice.upload.MonitoredDiskFileItem 
  DEBUG inside MonitoredDiskFileItem constructor 
2012-Sep-18 11:26:28,803 [TP-Processor5] com.actura.voice.upload.MonitoredDiskFileItem 
  DEBUG inside getOutputStream() 
2012-Sep-18 11:26:28,803 [TP-Processor5] com.actura.voice.upload.MonitoredOutputStream 
  DEBUG inside MonitoredOutputStream constructor 
2012-Sep-18 11:26:28,803 [TP-Processor5] com.actura.voice.upload.MonitoredOutputStream 
  DEBUG leaving MonitoredOutputStream contructor 
2012-Sep-18 11:26:28,803 [TP-Processor5] com.actura.voice.upload.MonitoredDiskFileItem 
  DEBUG leaving getOutputStream() 
2012-Sep-18 11:26:28,803 [TP-Processor5] com.actura.voice.upload.MonitoredDiskFileItemFactory 
  DEBUG inside MonitoredDiskFileItemFactory createItem 
2012-Sep-18 11:26:28,803 [TP-Processor5] com.actura.voice.upload.MonitoredDiskFileItem 
  DEBUG inside MonitoredDiskFileItem constructor 
2012-Sep-18 11:26:28,803 [TP-Processor5] com.actura.voice.upload.MonitoredDiskFileItem 
  DEBUG inside getOutputStream() 
2012-Sep-18 11:26:28,803 [TP-Processor5] com.actura.voice.upload.MonitoredOutputStream 
  DEBUG inside MonitoredOutputStream constructor 
2012-Sep-18 11:26:28,803 [TP-Processor5] com.actura.voice.upload.MonitoredOutputStream 
  DEBUG leaving MonitoredOutputStream contructor 
2012-Sep-18 11:26:28,804 [TP-Processor5] com.actura.voice.upload.MonitoredDiskFileItem 
  DEBUG leaving getOutputStream() 
2012-Sep-18 11:26:28,804 [TP-Processor5] com.actura.voice.upload.MonitoredDiskFileItemFactory 
  DEBUG inside MonitoredDiskFileItemFactory createItem 
2012-Sep-18 11:26:28,804 [TP-Processor5] com.actura.voice.upload.MonitoredDiskFileItem 
  DEBUG inside MonitoredDiskFileItem constructor 
2012-Sep-18 11:26:28,804 [TP-Processor5] com.actura.voice.upload.MonitoredDiskFileItem 
  DEBUG inside getOutputStream() 
2012-Sep-18 11:26:28,804 [TP-Processor5] com.actura.voice.upload.MonitoredOutputStream 
  DEBUG inside MonitoredOutputStream constructor 
2012-Sep-18 11:26:28,804 [TP-Processor5] com.actura.voice.upload.MonitoredOutputStream 
  DEBUG leaving MonitoredOutputStream contructor 
2012-Sep-18 11:26:28,804 [TP-Processor5] com.actura.voice.upload.MonitoredDiskFileItem 
  DEBUG leaving getOutputStream() 
 processing folder... /home/dixieh83/public_html/ActuraVoiceRecorderDemo/temp
2012-Sep-18 11:27:47,062 [TP-Processor4] com.actura.voice.upload.MonitoredDiskFileItemFactory 
  DEBUG inside MonitoredDiskFileItemFactory constructor (listener) 
2012-Sep-18 11:27:47,461 [TP-Processor4] com.actura.voice.upload.MonitoredDiskFileItemFactory 
  DEBUG inside MonitoredDiskFileItemFactory createItem 
2012-Sep-18 11:27:47,461 [TP-Processor4] com.actura.voice.upload.MonitoredDiskFileItem 
  DEBUG inside MonitoredDiskFileItem constructor 
2012-Sep-18 11:27:47,462 [TP-Processor4] com.actura.voice.upload.MonitoredDiskFileItem 
  DEBUG inside getOutputStream() 
2012-Sep-18 11:27:47,462 [TP-Processor4] com.actura.voice.upload.MonitoredOutputStream 
  DEBUG inside MonitoredOutputStream constructor 
2012-Sep-18 11:27:47,462 [TP-Processor4] com.actura.voice.upload.MonitoredOutputStream 
  DEBUG leaving MonitoredOutputStream contructor 
2012-Sep-18 11:27:47,462 [TP-Processor4] com.actura.voice.upload.MonitoredDiskFileItem 
  DEBUG leaving getOutputStream() 
2012-Sep-18 11:27:47,462 [TP-Processor4] com.actura.voice.upload.MonitoredDiskFileItemFactory 
  DEBUG inside MonitoredDiskFileItemFactory createItem 
2012-Sep-18 11:27:47,462 [TP-Processor4] com.actura.voice.upload.MonitoredDiskFileItem 
  DEBUG inside MonitoredDiskFileItem constructor 
2012-Sep-18 11:27:47,462 [TP-Processor4] com.actura.voice.upload.MonitoredDiskFileItem 
  DEBUG inside getOutputStream() 
2012-Sep-18 11:27:47,462 [TP-Processor4] com.actura.voice.upload.MonitoredOutputStream 
  DEBUG inside MonitoredOutputStream constructor 
2012-Sep-18 11:27:47,462 [TP-Processor4] com.actura.voice.upload.MonitoredOutputStream 
  DEBUG leaving MonitoredOutputStream contructor 
2012-Sep-18 11:27:47,462 [TP-Processor4] com.actura.voice.upload.MonitoredDiskFileItem 
  DEBUG leaving getOutputStream() 
2012-Sep-18 11:27:47,463 [TP-Processor4] com.actura.voice.upload.MonitoredDiskFileItemFactory 
  DEBUG inside MonitoredDiskFileItemFactory createItem 
2012-Sep-18 11:27:47,463 [TP-Processor4] com.actura.voice.upload.MonitoredDiskFileItem 
  DEBUG inside MonitoredDiskFileItem constructor 
2012-Sep-18 11:27:47,463 [TP-Processor4] com.actura.voice.upload.MonitoredDiskFileItem 
  DEBUG inside getOutputStream() 
2012-Sep-18 11:27:47,463 [TP-Processor4] com.actura.voice.upload.MonitoredOutputStream 
  DEBUG inside MonitoredOutputStream constructor 
2012-Sep-18 11:27:47,463 [TP-Processor4] com.actura.voice.upload.MonitoredOutputStream 
  DEBUG leaving MonitoredOutputStream contructor 
2012-Sep-18 11:27:47,463 [TP-Processor4] com.actura.voice.upload.MonitoredDiskFileItem 
  DEBUG leaving getOutputStream() 
2012-Sep-18 11:27:47,463 [TP-Processor4] com.actura.voice.upload.MonitoredDiskFileItemFactory 
  DEBUG inside MonitoredDiskFileItemFactory createItem 
2012-Sep-18 11:27:47,463 [TP-Processor4] com.actura.voice.upload.MonitoredDiskFileItem 
  DEBUG inside MonitoredDiskFileItem constructor 
2012-Sep-18 11:27:47,463 [TP-Processor4] com.actura.voice.upload.MonitoredDiskFileItem 
  DEBUG inside getOutputStream() 
2012-Sep-18 11:27:47,463 [TP-Processor4] com.actura.voice.upload.MonitoredOutputStream 
  DEBUG inside MonitoredOutputStream constructor 
2012-Sep-18 11:27:47,463 [TP-Processor4] com.actura.voice.upload.MonitoredOutputStream 
  DEBUG leaving MonitoredOutputStream contructor 
2012-Sep-18 11:27:47,463 [TP-Processor4] com.actura.voice.upload.MonitoredDiskFileItem 
  DEBUG leaving getOutputStream() 

Other than this upload issue my applet works fine. 除了这个上传问题,我的applet工作正常。

This is the configuration of the server as described in my production server's server.xml file: 这是我的生产服务器的server.xml文件中描述的服务器配置:

<!-- Define an AJP 1.3 Connector on port 8009 --> <Connector address="127.0.0.1" port="9609" enableLookups="false" protocol="AJP/1.3" connectionTimeout="30000" maxThreads="50" minSpareThreads="1" maxSpareThreads="3" disableUploadTimeout="true" /> 

The speed of my internet connection is fine (2.01 Mbps down and 0.42 Mbps up), so this exception leaves me puzzled. 我的互联网连接的速度很好(下降2.01 Mbps和0.42 Mbps),所以这个例外让我感到困惑。 I've already set connectionTimeOut to 3000000, but I still got the exception. 我已经将connectionTimeOut设置为3000000,但我仍然有例外。 Should I set connectionTimeOut to -1 to make it unlimited? 我应该将connectionTimeOut设置为-1以使其无限制吗?

File permissions are set to 777 on the directory from which I'm uploading and I'm using JDK version 7 to run the applet in the browser. 我正在上传的目录中的文件权限设置为777 ,我使用JDK版本7在浏览器中运行applet。

Java console output: Java控制台输出:

Java Plug-in 10.7.2.10
Using JRE version 1.7.0_07-b10 Java HotSpot(TM) Client VM

When the upload fails, I get this in the console: 当上传失败时,我在控制台中得到这个:

java.net.SocketException: Connection reset by peer: socket write error
    at java.net.SocketOutputStream.socketWrite0(Native Method)
    at java.net.SocketOutputStream.socketWrite(Unknown Source)
    at java.net.SocketOutputStream.write(Unknown Source)
    at org.apache.http.impl.io.AbstractSessionOutputBuffer.write(AbstractSessionOutputBuffer.java:169)
    at org.apache.http.impl.io.ContentLengthOutputStream.write(ContentLengthOutputStream.java:119)
    at org.apache.http.entity.mime.content.InputStreamBody.writeTo(InputStreamBody.java:70)
    at org.apache.http.entity.mime.HttpMultipart.doWriteTo(HttpMultipart.java:206)
    at org.apache.http.entity.mime.HttpMultipart.writeTo(HttpMultipart.java:224)
    at org.apache.http.entity.mime.MultipartEntity.writeTo(MultipartEntity.java:183)
    at org.apache.http.entity.HttpEntityWrapper.writeTo(HttpEntityWrapper.java:98)
    at org.apache.http.impl.client.EntityEnclosingRequestWrapper$EntityWrapper.writeTo(EntityEnclosingRequestWrapper.java:108)
    at org.apache.http.impl.entity.EntitySerializer.serialize(EntitySerializer.java:122)
    at org.apache.http.impl.AbstractHttpClientConnection.sendRequestEntity(AbstractHttpClientConnection.java:271)
    at org.apache.http.impl.conn.ManagedClientConnectionImpl.sendRequestEntity(ManagedClientConnectionImpl.java:197)
    at org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:257)
    at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
    at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:712)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:517)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:1066)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:1044)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:1035)
    at com.actura.app.util.ApplicationUtil.uploadUsingApache(ApplicationUtil.java:143)
    at com.actura.app.util.ApplicationUtil.saveWaveToServer(ApplicationUtil.java:90)
    at com.actura.app.capture.RecorderUI.saveButtonActionPerformed(RecorderUI.java:1856)
    at com.actura.app.capture.RecorderUI.access$17(RecorderUI.java:1824)
    at com.actura.app.capture.RecorderUI$7.actionPerformed(RecorderUI.java:1325)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$200(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

i have come to know that this might be a problem of my ISP. 我已经知道这可能是我的ISP的一个问题。 I just wonder if it is the problem of iSP why i can smoothly uses software like temviewer and Skype ?? 我只是想知道是不是iSP的问题为什么我可以顺利使用temviewer和Skype这样的软件?

The following is the code that performs the upload: 以下是执行上载的代码:

public static String uploadUsingApache(URL url, List<File> list,
            String userId, String accountId, String waveDuration)
            throws Exception {

        // The execution:
        DefaultHttpClient httpclient = new DefaultHttpClient();

        HttpPost method = new HttpPost(url.toString());

        MultipartEntity entity = new MultipartEntity();
        entity.addPart("userId", new StringBody(userId, Charset
                .forName("UTF-8")));
        entity.addPart(IVR_ACCOUNT_KEY, new StringBody(accountId, Charset
                .forName("UTF-8")));
        entity.addPart(IVR_MP3LEN_KEY, new StringBody(waveDuration, Charset
                .forName("UTF-8")));

        // FileBody fileBody = new FileBody(list.get(0));
        // entity.addPart("file", fileBody);

        for (File f : list) {

            byte[] imageBytes = fileToByteArray(f);
            entity.addPart("attachment_field", new InputStreamKnownSizeBody(
                    new ByteArrayInputStream(imageBytes), imageBytes.length,
                    "audio/wav", f.getName()));
            method.setEntity(entity);
        }

        ResponseHandler<String> responseHandler = new BasicResponseHandler();

        // HttpResponse response = httpclient.execute(method,responseHandler);
        String responseText = httpclient.execute(method, responseHandler);

        // error text
        if (responseText.contains("<exception>")) {
            responseText = responseText.replace("<exception>", "");
            responseText = responseText.replace("</exception>", "");
            throw new Exception(responseText);
        }

        // System.out.println(" Status " +response.getStatusLine());
        List<String> deleteList = Arrays.asList(responseText.split(","));

        StringBuffer sb = new StringBuffer();
        int cnt = 1;
        for (File f : list) {
            if (deleteList.contains(f.getName())) {
                sb.append(f.getName() + (cnt == deleteList.size() ? "" : ", "));
                f.delete();
                cnt++;
            }

        }

        if (deleteList.size() > 1) {
            sb.append(" are ");
        } else if (deleteList.size() == 1) {
            sb.append(" is ");
        } else {

        }

        sb.append(" successfully saved.");

        return sb.toString();
    }

When I press the upload button on my applet's GUI, it calls above method and at the same time the GUI freezes. 当我按下applet的GUI上的上传按钮时,它调用上面的方法,同时GUI冻结。 10 to 50 seconds later, the server throws the FileUploadException . 10到50秒后,服务器抛出FileUploadException The servlet notifies the applet about the exception, but the applet hangs for four or five minutes before notifying the user of the exception. servlet通知applet有关异常的信息,但applet会在通知用户异常之前挂起四到五分钟。

Why is there so much delay if there's something wrong on the server side? 如果服务器端出现问题,为什么会有这么多延迟?

This helped me out a lot: http://blog.somepixels.net/en/502-proxy-error-uploading-from-apache-mod_proxy-to-tomcat-7/ 这对我帮助很大: http//blog.somepixels.net/en/502-proxy-error-uploading-from-apache-mod_proxy-to-tomcat-7/

Basically in my server.xml I set it as: 基本上在我的server.xml中我将它设置为:

<Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8"
       connectionUploadTimeout="36000000" disableUploadTimeout="false"
       connectionTimeout="60000" redirectPort="8443" />

It's not clear from the question what config you're running with (or what you've already tried), but the problem is almost by definition that the socket timeout is exceeded during the upload. 从问题中运行的配置(或者您已尝试过的配置)不清楚,但问题几乎是定义上传期间超出了套接字超时。

The error is thrown because the file was not fully received before the relevant timeout was reached. 抛出错误是因为在达到相关超时之前未完全接收文件。 This is consistent with things working in test (on a local network) but not when running over the much slower internet (especially when it comes to upload speeds). 这与在测试中工作的东西(在本地网络上)一致,但是当在速度慢得多的互联网上运行时(特别是在上传速度时)。

Have a look at your server.xml for the relevant <Connector> definition. 查看server.xml以获取相关的<Connector>定义。 You'll be interested in the value of either the connectionTimeout or connectionUploadTimeout attributes (the latter if disableUploadTimeout is set to true). 您将对connectionTimeoutconnectionUploadTimeout属性的值感兴趣(如果disableUploadTimeout设置为true,则为后者)。

In the absence of evidence of more nefarious problems, I expect you can resolve this issue simply by increasing the connection timeout(s). 在没有更多邪恶问题的证据的情况下,我希望您可以通过增加连接超时来解决此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 异常multipart / form-data请求失败。 读取超时 - Exception multipart/form-data request failed. Read timed out 它不起作用! 处理多部分/表单数据请求失败。 套接字上意外的EOF读取 - Its not working!! Processing of multipart/form-data request failed. Unexpected EOF read on the socket 无法解析多部分请求org.apache.commons.fileupload.FileUploadException:处理多部分/表单数据请求失败。 空值 - Failed to parse multipart request org.apache.commons.fileupload.FileUploadException: Processing of multipart/form-data request failed. null 处理多部分/表单数据 - processing multipart/form-data org.apache.commons.fileupload.FileUploadException:处理多部分/表单数据请求失败 - org.apache.commons.fileupload.FileUploadException: Processing of multipart/form-data request failed 骆驼发送多部分/表单数据请求 - Camel send multipart/form-data request 使用 ByteArray 请求 MultiPart/Form-Data - Request MultiPart/Form-Data with ByteArray 处理 multipart/form-data 请求时,srpingboot 1.3.7 中的文件始终为 null - File is always null in srpingboot 1.3.7 when processing multipart/form-data request 具有Multipart / Form-Data Enctype的表单验证失败后,Struts 1丢失请求参数 - Struts 1 Losing Request Parameters after Failed Form Validation with Multipart/Form-Data Enctype Kafka Streams - Offset提交失败。 请求超时 - Kafka Streams - Offset commit failed. The request timed out
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM