272.7. Camel로 변환 요청
일부 Camel DSL에 정의된 경로는 반응 스트림 프레임워크 내에서 사용하여 특정 변환을 수행할 수 있습니다(예: http 엔드포인트로 데이터 전송 및 계속).
다음 코드 조각은 Rx Java 기능 코드에서 Camel에 파일을 로드 및 마샬링하는 작업을 요청할 수 있는 방법을 보여줍니다.
CamelReactiveStreamsService camel = CamelReactiveStreams.get(context);
// Process files starting from their names
Flowable.just(new File("file1.txt"), new File("file2.txt"))
.flatMap(file -> camel.toStream("readAndMarshal", String.class))
// Camel output will be converted to String
// other steps
.subscribe();이 기능이 작동하려면 Camel 컨텍스트에서 다음과 같은 경로를 정의해야 합니다.
from("reactive-streams:readAndMarshal")
.marshal() // ... other details272.7.1. 직접 API를 사용하여 Camel로 변환 요청
대체 방법은 반응 흐름에서 직접 URI 엔드포인트를 사용하는 것입니다.
CamelReactiveStreamsService camel = CamelReactiveStreams.get(context);
// Process files starting from their names
Flowable.just(new File("file1.txt"), new File("file2.txt"))
.flatMap(file -> camel.to("direct:process", String.class))
// Camel output will be converted to String
// other steps
.subscribe();toStream 대신 to() 메서드를 사용하는 경우 "reactive-streams:" 엔드포인트를 사용하여 경로를 정의할 필요가 없습니다(후드에서 사용됨).
이 경우 Camel 변환은 다음과 같이 가능합니다.
from("direct:process")
.marshal() // ... other details