16.7. 간단한 언어 사용
예를 들어 컨트롤 버스와 함께 간단한 언어를 사용하여 특정 경로를 중지할 수 있습니다. 다음 메시지가 포함된 "controlbus:simple"
엔드포인트에 메시지를 보낼 수 있습니다.
template.sendBody("controlbus:language:simple", "${camelContext.getRouteController().stopRoute('myRoute')}");
template.sendBody("controlbus:language:simple", "${camelContext.getRouteController().stopRoute('myRoute')}");
이는 빈 작업이므로 결과가 반환되지 않습니다. 그러나 경로 상태를 원하는 경우 다음을 수행할 수 있습니다.
String status = template.requestBody("controlbus:language:simple", "${camelContext.getRouteStatus('myRoute')}", String.class);
String status = template.requestBody("controlbus:language:simple", "${camelContext.getRouteStatus('myRoute')}", String.class);
route
명령을 사용하여 경로의 라이프사이클을 제어하는 것이 더 쉽습니다. 언어
명령을 사용하면 Groovy 와 같은 강력한 권한이 있거나 일부 간단한 언어를 확장하는 언어 스크립트를 실행할 수 있습니다.
예를 들어 Camel 자체를 종료하는 경우 다음을 수행할 수 있습니다.
template.sendBody("controlbus:language:simple?async=true", "${camelContext.stop()}");
template.sendBody("controlbus:language:simple?async=true", "${camelContext.stop()}");
async=true
를 사용하여 Camel을 비동기식으로 중지합니다. 그렇지 않으면 제어 버스 구성 요소로 보낸 메시지를 진행 중이던 동안 Camel을 중지하려고 합니다.
Groovy 와 같은 다른 언어도 사용할 수 있습니다.