У меня следующая проблема: в моем веб-приложении Spring Boot с пользовательским интерфейсом Primefaces я хочу загрузить ресурсы в бэкэнд. Я также хочу сделать веб-сервис доступным для загрузки ресурсов через веб-сервер.
Кажется, что фильтр загрузки Primefaces мешает веб-сервису.
Мой класс ServletContextInitializer:
@Configuration
public class Initializer implements ServletContextInitializer {
@Bean
public FilterRegistrationBean FileUploadFilter() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(new org.primefaces.webapp.filter.FileUploadFilter());
registration.setName("PrimeFaces FileUpload Filter");
registration.addUrlPatterns("/*");
registration.setDispatcherTypes(DispatcherType.FORWARD, DispatcherType.REQUEST);
registration.setAsyncSupported(true);
return registration;
}
}
Мой класс сервлета выглядит так:
@WebServlet(name = "InsertAsset", urlPatterns = {"/InsertAsset"})
@MultipartConfig
public class InsertAsset extends HttpServlet {
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletContext servletContext = getServletContext();
System.out.println(servletContext.getMajorVersion() + "." + servletContext.getMinorVersion());
List<Part> fileParts = request.getParts().stream().filter(part -> "file".equals(part.getName()) && part.getSize() > 0).collect(Collectors.toList());
for (Part filePart : fileParts) {
String fileName = Paths.get(filePart.getSubmittedFileName()).getFileName().toString();
InputStream fileContent = filePart.getInputStream();
}
}
}
Когда активен фильтр загрузки Primefaces, веб-сервлет не работает (части файлов пустые). Обработчик загрузки для пользовательского интерфейса Primefaces работает правильно. Когда я раскомментирую фильтр загрузки Primefaces, веб-сервлет работает нормально, и файловые части заполняются. Но обработчик загрузки пользовательского интерфейса Primefaces не вызывается вообще.
В чем проблема? Мне нужно перенастроить фильтр загрузки?
Спасибо за любую помощь.