Как использовать HttpServletRequest # getParts () в фильтре сервлета, работающем на Tomcat?

Я хочу загрузить файл в свое приложение JSF. Я использую фильтр и HttpServletRequestWrapper для доступа к загружаемому файлу.

 public MultipartRequestWrapper(HttpServletRequest request) {
    super(request);
    System.out.println("Created multipart wrapper....");
    try {
        System.out.println("Looping parts"+getParts().size());

        for (Part p : getParts()) {
            System.out.println(String.format("Part name: %1$s, contentType : %2$s", p.getName(), p.getContentType()));
            for(String header : p.getHeaderNames()){
                System.out.println("Header name : " + header + ", value : " + p.getHeader(header));
            }
            byte[] b = new byte[(int) p.getSize()];
            p.getInputStream().read(b);
            params.put(p.getName(), new String[]{new String(b)});
        }
    } catch (IOException ex) {
        ex.printStackTrace();
        Logger.getLogger(MultipartRequestWrapper.class.getName()).log(Level.SEVERE, null, ex);
    } catch (ServletException ex) {
         ex.printStackTrace();
        Logger.getLogger(MultipartRequestWrapper.class.getName()).log(Level.SEVERE, null, ex);
    }

Однако getParts () возвращает пустую коллекцию. Как включить парсинг multipart / form-data в фильтре сервлета в Tomcat 7.0.8?

10
задан BalusC 22 July 2016 в 11:03
поделиться