java 无法解析多部分请求 org.apache.commons.fileupload.FileUploadException:处理多部分/表单数据请求失败。空值

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/25032644/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-11-02 07:11:16  来源:igfitidea点击:

Failed to parse multipart request org.apache.commons.fileupload.FileUploadException: Processing of multipart/form-data request failed. null

javafile-uploadjboss5.xstruts-1

提问by profskz

I know the similar questions are already asked, but unfortunately I can't find the good answer to find the solution for this problem. When I try to upload any file (XML/CSV formats accepted only), it works in local, but on the server it doesn't work. I don't have any timeout or read timeout error. Here you can find more details.

我知道已经有人问过类似的问题,但不幸的是我找不到很好的答案来找到这个问题的解决方案。当我尝试上传任何文件(仅接受 XML/CSV 格式)时,它在本地工作,但在服务器上不起作用。我没有任何超时或读取超时错误。在这里您可以找到更多详细信息。

IMPORTANT : I have this error after correction of Hibernate Session's error, in fact I had always Session Close error in log file so I changed my code and now the Sessions will be closed after finishing the task, but I have this new error only in Server and not in LOCAL !!

重要提示:在更正 Hibernate Session 的错误后,我遇到了这个错误,事实上我在日志文件中总是出现 Session Close 错误,所以我更改了我的代码,现在 Sessions 将在完成任务后关闭,但我只有在服务器中有这个新错误而不是在本地!

Server log :

服务器日志:

    ERROR [org.apache.struts.upload.CommonsMultipartRequestHandler] (ajp-127.0.0.1-8009-6) Failed to parse multipart request
org.apache.commons.fileupload.FileUploadException: Processing of multipart/form-data request failed. null
    at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:384)
    at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:268)
    at org.apache.struts.upload.CommonsMultipartRequestHandler.handleRequest(CommonsMultipartRequestHandler.java:182)
    at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:389)
    at org.apache.struts.chain.commands.servlet.PopulateActionForm.populate(PopulateActionForm.java:45)
    at org.apache.struts.chain.commands.AbstractPopulateActionForm.execute(AbstractPopulateActionForm.java:57)
    at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:48)
    at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
    at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:280)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)

Server.xml file :

Server.xml 文件:

 <Service name="jboss.web">

  <!-- A HTTP/1.1 Connector on port 8080 -->
  <Connector protocol="HTTP/1.1" port="8080" address="${jboss.bind.address}" 
           connectionTimeout="20000" redirectPort="8443" />

回答by Buhake Sindi

I'm assuming that you are uploading a big file and it's taking time to upload.

我假设您正在上传一个大文件并且上传需要时间。

I would suggest to add the following to Connectorwith the following:

我建议将以下内容添加到以下Connector内容中:

 <!-- A HTTP/1.1 Connector on port 8080 -->
  <Connector protocol="HTTP/1.1" port="8080" address="${jboss.bind.address}" 
           connectionTimeout="60000" redirectPort="8443" 
           connectionUploadTimeout="36000000" disableUploadTimeout="false" />

(See this related SO Question).

(请参阅此相关的SO 问题)。

I hope this helps.

我希望这有帮助。