273.7. Camel로의 변환 요청
일부 Camel DSL에 정의된 경로는 반응 스트림 프레임워크 내에서 특정 변환을 수행할 수 있습니다(예: http 끝점으로 데이터를 전송하고 계속).
다음 스니펫에서는 RxJava 기능 코드에서 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 details
273.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