0

I had a java application with jetty that allowed users to upload files with an http request.

The method for uploading the files had something like this

        ServletFileUpload upload = setProgressListeners(currentSessionUserId);
        List<FileItem> multipartItems = new ArrayList<>();
        try {
            multipartItems = upload.parseRequest(request);
        } catch (FileUploadException e) {
            logger.error("Error uploading file: ", e);
        }

And the method setProgressListeners is this:

    private ServletFileUpload setProgressListeners(String ownerId) {
        FileItemFactory factory = new DiskFileItemFactory(0, Ambient.uploadTmpFolder);
        ServletFileUpload upload = new ServletFileUpload(factory);

        FileUploadProgressListener progressListener = new FileUploadProgressListener();
        upload.setProgressListener(progressListener);

        HttpSession session = request.getSession();

        session.setAttribute(ownerId, progressListener);

        String currentUploads = (String) session.getAttribute("currentUploads");
        if (currentUploads == null) {
            currentUploads = "";
        }
        currentUploads += ownerId + "/";
        session.setAttribute("currentUploads", currentUploads);

        return upload;
    }

Where ServletFileUpload and request ( HttpServletRequest ) come from the package javax...

I recently updated jdk version to java 11 and now i migrated from javax... to jakarta.... Everything works (all other normal requests) except the part where i try to upload the file and keep progress of the upload.
Now the part multipartItems = upload.parseRequest(request); requires a request of type javax.servlet.http.HttpServletRequest while i have type jakarta.servlet.http.HttpServletRequest.
I could not find a new package with ServletFileUpload or anything similar. How can i "migrate" that part of code as well? If you need any more info let me know. Thanks!

EDIT: Maybe it could also be useful to know where did the classes org.apache.commons.fileupload.disk.DiskFileItem, org.apache.commons.fileupload.servlet.ServletFileUpload and org.apache.commons.fileupload.FileItem ended up being or if they should be still used...because i used those to then save the files on disk after setting up the upload progress listener.

0 Answers0