Confluence upload file servlet

I am developing a confluence server plugin that requires a csv file to be uploaded. The csv file shall be read and the contents will be used to bulk create users. I am having trouble getting the servlet to work. The servlet class does not seem to be initialised at all as the console does not print the logs that I’ve inserted.

I’ve followed this question but I still can’t get it to work.

Velocity template:

<form class="aui" id="form" enctype="multipart/form-data" method="POST">
                <label for="file-input">Upload CSV file:</label>
                <input class="upfile" type="file" id="file-input" name="file-input" accept=".csv">
                <button id="submit-btn" type="submit" value="Submit">Submit</button></form>

Servlet Class:

package com.dso.intern.plugin;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.net.URI;
import com.atlassian.sal.api.auth.LoginUriProvider;
import com.atlassian.sal.api.user.UserManager;

import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import java.util.List;
import org.apache.commons.fileupload.FileItem;
import java.io.InputStream;
import javax.servlet.http.Part;
import java.nio.file.Paths;
import org.apache.commons.fileupload.FileUploadException;

public class MyServlet extends HttpServlet{

    private final UserManager userManager;
    private final LoginUriProvider loginUriProvider;
    private static final Logger log = LogManager.getLogger(MyServlet.class);

    public MyServlet(UserManager userManager, LoginUriProvider loginUriProvider){
        this.userManager = userManager;
        this.loginUriProvider = loginUriProvider;
        log.debug("Servlet initialised");
    }

    @Override
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        log.debug("doPost method called");

        String username = userManager.getRemoteUsername(request);
        if (username == null || !userManager.isSystemAdmin(username))
        {
            redirectToLogin(request, response);
            return;
        }

        final DiskFileItemFactory factory = new DiskFileItemFactory();
        final ServletFileUpload upload = new ServletFileUpload(factory);
        upload.setSizeMax(20 * 1024 * 1024L);
        try{
            final List<FileItem> fileItems = upload.parseRequest(request);
            final FileItem file = fileItems.get(0); // assuming only one file is uploaded
            try (InputStream source = file.getInputStream()){
                log.debug("Request content type: " + request.getContentType());
                log.debug("Request parameterMap size: " + request.getParameterMap().size());
                log.debug("Request parts size: " + request.getParts().size());

                Part filePart = request.getPart("file"); // Retrieves <input type="file" name="file">
                String fileName = Paths.get(getSubmittedFileName(filePart)).getFileName().toString(); // MSIE fix.
                InputStream fileContent = filePart.getInputStream();
            }
            catch (ServletException e) {
                log.error("Error creating escalate rules.", e);
            }
        } catch (FileUploadException e){
            log.error(e);
        }
        

    }

    private void redirectToLogin(HttpServletRequest request, HttpServletResponse response) throws IOException{
        response.sendRedirect(loginUriProvider.getLoginUri(getUri(request)).toASCIIString());
    }
    
    private URI getUri(HttpServletRequest request){
        StringBuffer builder = request.getRequestURL();
        if (request.getQueryString() != null)
        {
            builder.append("?");
            builder.append(request.getQueryString());
        }
        return URI.create(builder.toString());
    }

    private static String getSubmittedFileName(Part part) {
	    for (String cd : part.getHeader("content-disposition").split(";")) {
	        if (cd.trim().startsWith("filename")) {
	            String fileName = cd.substring(cd.indexOf('=') + 1).trim().replace("\"", "");
	            return fileName.substring(fileName.lastIndexOf('/') + 1).substring(fileName.lastIndexOf('\\') + 1); // MSIE fix.
	        }
	    }
	    return null;
	}	
}

atlassian-plugin.xml:

<servlet key="my-servlet" class="com.dso.intern.plugin.MyServlet" name="Bulk User Creation Tool Servlet">
        <description key="my-servlet-description">#</description>
        <url-pattern>/bulk-user-creator</url-pattern>
 </servlet>

pom.xml

<dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.14.1</version>
            <scope>provided</scope>
</dependency>
<dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.14.1</version>
            <scope>provided</scope>
</dependency>
<dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.4</version>
            <scope>provided</scope>
</dependency>
<dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
</dependency>
<dependency>
            <groupId>com.atlassian.sal</groupId>
            <artifactId>sal-api</artifactId>
            <version>4.5.1</version>
            <scope>provided</scope>
</dependency>

Please help. Thank you