Hi camel rider-community!

I have a question referring the usage of StreamCachingInterceptor.

My route-config (simplified):

    
from("jbi:endpoint:http://biz.accelsis.swm/InboundRoutingService/EDIFileInEndpoint";)
        .intercept(new StreamCachingInterceptor())
        .process(new DataProcessor(new SyntaxCheckProcessor(),
DataProcessor.BODY_TO_BODY))
        .multicast()
        .to("direct:ctrl", "direct:main");

        from("direct:ctrl")
        .intercept(new StreamCachingInterceptor())
        .process(new DataProcessor(new
ExtractionProcessor("/envelope/control/data"))
        .to("jbi:endpoint:http://biz.accelsis.swm/FileOutService/ContrlOut";);

        from("direct:main")
        .to("jbi:endpoint:http://biz.accelsis.swm/FileOutService/SapOut";);

I believe that i need the StreamCachingInterceptor because i send a message
containing a stream-body via multicast to two endpoints. My tests show that
if the first one (direct:ctrl) reads the message, the stream is used and can
not be read again by endpoint two (direct:main). But somehow, i tried
multiple tests with the StreamCachingInterceptor, but none of them is
working.

- Where do i have to insert ".intercept(new StreamCachingInterceptor())" ?

- How do i have to extract the body in the following Processor? The current
code is like this:
       ByteArrayInputStream is =
messageIn.getBody(StreamSource.class).getInputStream();
  Does that work?

I already tried a global "streamCaching()" and more local
from(...).streamCaching().to... alternatives, but i feel that i am missing
something.

Please help me. Thanks in advance.

-- 
View this message in context: 
http://www.nabble.com/StreamCachingInterceptor-question-tp20561886s22882p20561886.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to