Reputation: 43
I am getting following error in jsp page for file upload code:
The method parseRequest(RequestContext) in the type FileUploadBase is not applicable for the arguments (HttpServletRequest)
error in the code:
List<FileItem> items = uploadHandler.parseRequest(request);
Upvotes: 1
Views: 5901
Reputation: 8634
The parseRequest(RequestContext ctx) expects RequestContext
instance as argument but the argument passed is instance of HttpServletRequest
Use ServletRequestContext to create a RequestContext
instance as follows.
List<FileItem> items
= uploadHandler.parseRequest(new ServletRequestContext(request));
Upvotes: 8
Reputation: 5064
great answers above, but if you are upgrading to tomcat10 which naming change from javax to jakarta, commons-fileupload as of version 1.4 has not change the naming yet, but you can change to the custom class in tomcat10 instead! (LUCKY ME)
org.apache.commons.fileupload.ProgressListener to org.apache.tomcat.util.http.fileupload.ProgressListener
org.apache.commons.fileupload.servlet.ServletFileUpload to org.apache.tomcat.util.http.fileupload.servlet.ServletFileUpload
org.apache.commons.fileupload.disk.DiskFileItemFactory to org.apache.tomcat.util.http.fileupload.disk.DiskFileItemFactory
org.apache.commons.fileupload.FileItem to org.apache.tomcat.util.http.fileupload.FileItem
Upvotes: 1
Reputation: 330
I had same problem, then found my imports were wrong: the last one of them was using fileupload
from sun
, not from commons.fileupload
. After I changed them all to commons.fileupload
, the error disappeared:
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.servlet.ServletRequestContext;
Upvotes: 1