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)