Wicket 6: ¿captura los parámetros HttpServletRequest en forma de varias partes?

Usando Wicket 6.17 y el servlet 2.5, tengo un formulario que permite la carga de archivos, y también tiene ReCaptcha (usando Recaptcha4j). Cuando el formulario tiene ReCaptcha sin cargar archivos, funciona correctamente usando el código:

    final HttpServletRequest servletRequest = (HttpServletRequest ) ((WebRequest) getRequest()).getContainerRequest();
    final String remoteAddress = servletRequest.getRemoteAddr();
    final String challengeField = servletRequest.getParameter("recaptcha_challenge_field");
    final String responseField = servletRequest.getParameter("recaptcha_response_field");

para obtener los campos de desafío y respuesta para que puedan validarse.

Esto no funciona cuando el formulario tiene la carga del archivo porque el formulario debe ser multiparte para que funcione la carga, por lo que cuando intento obtener los parámetros de esa manera, falla.

He intentado tratar de obtener los parámetros de manera diferente usando ServletFileUpload:

    ServletFileUpload fileUpload = new ServletFileUpload(new DiskFileItemFactory(new FileCleaner()) );
    String response = IOUtils.toString(servletRequest.getInputStream());

y

    ServletFileUpload fileUpload = new ServletFileUpload(new DiskFileItemFactory(new FileCleaner()) );
    List<FileItem> requests = fileUpload.parseRequest(servletRequest);

los cuales siempre vuelven vacíos.

Al usar la consola de red de Chrome, veo los valores que estoy buscando en la Solicitud de carga útil, así que sé que están allí en algún lugar.

Cualquier consejo sobre por qué las solicitudes vuelven vacías y cómo encontrarlas sería muy apreciado.

Actualización: también intenté hacer que el componente ReCaptcha sea multiparte y omití la carga del archivo. El resultado sigue siendo el mismo que la respuesta está vacía, dejándome con la conclusión original de que el problema es el envío de formularios multiparte.

Respuestas a la pregunta(1)

Su respuesta a la pregunta