在Camel中将远程PDF作为application / pdf返回

时间:2018-12-26 17:21:04

标签: java apache-camel jbossfuse spring-dsl

我需要将远程PDF文件作为application/pdf返回。在经典的WAR中,我将构建一个servlet来检索远程PDF为InputStream并返回与OutputStream相同的PDF,可以在Apache Camel中这样做吗?最佳做法是什么?

我看到了camel-servlet,但我不知道这样做的方式。

1 个答案:

答案 0 :(得分:1)

我找到了这个解决方案:如下定义其余服务(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);
}