Настроить конечную точку Camel Jetty без указания протокола, хоста и порта - PullRequest
0 голосов
/ 28 декабря 2018

Чтобы принять (в приложении Camel WAR) загруженные файлы, мне нужно предоставить конечную точку Jetty, и в конфигурации Jetty я бы не хотел указывать протокол, хост, порт и корневой контекст (я хотел бынаследовать эти данные из контейнера WAR).

Возможно ли это сделать?Я не нашел информации об этом.

1 Ответ

0 голосов
/ 28 декабря 2018

Решено следующим образом: вместо джета я использовал сервлет

<camel:route id="servlet-route">
    <camel:from id="servletfrom" uri="servlet://provaservlet?disableStreamCache=true"/>
    <to id="servletto" uri="provaUploadProcessorId"/>
</camel:route>

В процессоре provaUploadProcessorId я получил запрос сервлета от тела обмена

HttpServletRequest request = exchange.getIn().getBody(HttpServletRequest.class);

и затем ясмог прочитать параметры и файлы, как показано ниже

        List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
        for (FileItem item : items) {
            if (item.isFormField()) {
                // Process regular form field (input
                // type="text|radio|checkbox|etc", select, etc).
                String fieldName = item.getFieldName();
                String fieldValue = item.getString();
                log.info("param name " + fieldName + ", param value " + fieldValue);
            } else {
                // Process form file field (input type="file").
                String fieldName = item.getFieldName();
                String fileName = FilenameUtils.getName(item.getName());
                log.info("file param name " + fieldName + ", file param value " + fileName);
                InputStream fileContent = item.getInputStream();
                // do what you want with the file content and then close it
                fileContent.close();
            }
        }

Имейте в виду, чтобы загрузить эти зависимости

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.6</version>
</dependency>
<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.3.3</version>
</dependency>
...