I have lifted from the GlassFish tutorial a simple file upload servlet
example. When I run this with Tomcat 8.5 and HTTPS (Http11NioProtocol), it
works fine, uploading a file to the /tmp directory:

  ...
  protected void processRequest(HttpServletRequest request,
HttpServletResponse response)
      throws ServletException, IOException {

    response.setContentType("text/html;charset=UTF-8");

    // Create path components to save the file
    final String path = request.getParameter("destination");
    final Part filePart = request.getPart("file");
    final String fileName = filePart.getSubmittedFileName();
    ...

However when I add <UpgradeProtocol
className="org.apache.coyote.http2.Http2Protocol" /> to the <Connector> in
servlet.xml, the servlet fails with a NullPointerException on
filePart.getSubmittedFileName().

Surprised, I tried uploading a .WAR through the Tomcat Manager with HTTP/2
enabled. Sure enough, it failed with the message "FAIL - File upload
failed, no file". When I track this down in the 8.5 source, I find the
error at line #239 of org.apache.catalina.manager.HTMLManagerServlet, which
indicates that request.getPart("deployWar") is returning null.

Has anyone else seen this?

I'm am running Tomcat 8.5, Java 1.8.0_91, MacOS 10.10.5, and Chrome 50.

-- 
"Hell hath no limits, nor is circumscrib'd In one self-place; but where we
are is hell, And where hell is, there must we ever be" --Christopher
Marlowe, *Doctor Faustus* (v. 121-24)

Reply via email to