"multipart config не присутствовал в сервлете" при попытке загрузить файл с классом JAX-RS - PullRequest
0 голосов
/ 31 января 2019

У меня есть следующий класс JAX-RS для загрузки файла из браузера (реализовано в Wildfly 14).Проблема в том, что я получаю ошибку multipart config was not present on Servlet.Поскольку я пометил класс @Consumes({ MediaType.MULTIPART_FORM_DATA }), я не уверен, чего не хватает.Как решить эту проблему?

@Produces({ MediaType.APPLICATION_JSON })
@Consumes({ MediaType.MULTIPART_FORM_DATA })
public class FileUploadService {

    @Context
    private HttpServletRequest request;

    @POST
    @Path("/upload")
    public Response processUpload() throws IOException, ServletException {

        String path = "/mypath";    

        for (Part part : request.getParts()) {

            String fileName = getFileName(part);
            String fullPath = path + File.separator +  fileName;

            // delete file if exists
            java.nio.file.Path path2 = FileSystems.getDefault().getPath(fullPath);
            Files.deleteIfExists(path2);

            // get file input stream
            InputStream fileContent = part.getInputStream();
            byte[] buffer = new byte[fileContent.available()];
            fileContent.read(buffer);
            File targetFile = new File(fullPath);

            // write output file
            OutputStream outStream = new FileOutputStream(targetFile);
            outStream.write(buffer);
            outStream.close();
        }

        return Response.ok("OK").build();
    }


    private String getFileName(Part part) {
        for (String content : part.getHeader("content-disposition").split(";")) {
            if (content.trim().startsWith("filename"))
                return content.substring(content.indexOf("=") + 2, content.length() - 1);
        }
        return "";
    }

}

1 Ответ

0 голосов
/ 31 января 2019

Проблема в том, что у Wildfly / RESTeasy есть особый способ загрузки файлов с помощью JAX-RS.Решение здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...