无法解析多部分请求org.apache.commons.fileupload.FileUploadException:处理multipart / form-data请求失败。空值

时间:2014-07-30 08:58:58

标签: java file-upload jboss5.x struts-1

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

重要提示:我在纠正Hibernate Session错误后出现此错误,实际上我在日志文件中始终有Session Close错误所以我更改了代码,现在Sessions将在完成任务后关闭,但是我有这个新错误仅在服务器而不在LOCAL !!

服务器日志:

    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文件:

 <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" />

1 个答案:

答案 0 :(得分:2)

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

我建议使用以下内容将以下内容添加到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" />

(参见此相关SO Question)。

我希望这会有所帮助。