Вернуть удаленный PDF как приложение / PDF в Camel - PullRequest
0 голосов
/ 26 декабря 2018

Мне нужно вернуть удаленный файл PDF как application/pdf.В классической WAR я бы построил сервлет , который извлекает удаленный PDF как InputStream и возвращает тот же PDF, что и OutputStream , это можно сделать в Apache Camel ?Какая лучшая практика?

Я видел верблюжий сервлет , но я не понимал, как это сделать.

1 Ответ

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

Я нашел это решение: определив службу отдыха следующим образом (REST DSL)

<rest path="/">
    <get consumes="application/json"
        outType="java.io.InputStream"
        produces="application/pdf" uri="/provarest">
        <to uri="direct:provaRest"/>
    </get>
</rest>

Я могу вернуть PDF с этим маршрутом

<route id="route6">
    <from id="_from1Route6" uri="direct:provaRest"/>
    <to id="_toProvaRest" uri="provaRestProcessorId"/>
</route>

, где provaRestProcessorId равнопроцессор с этим методом

@Override
public void process(Exchange exchange) throws Exception {
    InputStream is = new FileInputStream(new File("C:\\somepath\\Prova.pdf"));
    exchange.getOut().setBody(is);
}
...