10.8. 검증
10.8.1. 개요
validate 패턴은 메시지의 콘텐츠가 유효한지 여부를 확인하는 편리한 구문을 제공합니다. validate DSL 명령은 서술자 표현식을 유일한 인수로 사용합니다. 서술자가 true
로 평가되면 경로가 정상적으로 처리됩니다. 서술자가 false
로 평가되면 PredicateValidationException
이 발생합니다.
10.8.2. Java DSL 예
다음 경로는 정규식을 사용하여 현재 메시지의 본문을 검증합니다.
from("jms:queue:incoming") .validate(body(String.class).regex("^\\w{10}\\,\\d{2}\\,\\w{24}$")) .to("bean:MyServiceBean.processLine");
다음과 같이 메시지 header Cryostat- Cryostat의 유효성을 검증할 수도 있습니다.
from("jms:queue:incoming") .validate(header("bar").isGreaterThan(100)) .to("bean:MyServiceBean.processLine");
간단한 표현식 언어로 validate를 사용할 수 있습니다.
from("jms:queue:incoming") .validate(simple("${in.header.bar} == 100")) .to("bean:MyServiceBean.processLine");
10.8.3. XML DSL 예
XML DSL에서 유효성을 검사하기 위해 권장되는 접근 방식은 간단한 표현식 언어를 사용하는 것입니다.
<route> <from uri="jms:queue:incoming"/> <validate> <simple>${body} regex ^\\w{10}\\,\\d{2}\\,\\w{24}$</simple> </validate> <beanRef ref="myServiceBean" method="processLine"/> </route> <bean id="myServiceBean" class="com.mycompany.MyServiceBean"/>
다음과 같이 메시지 header Cryostat- Cryostat의 유효성을 검증할 수도 있습니다.
<route> <from uri="jms:queue:incoming"/> <validate> <simple>${in.header.bar} == 100</simple> </validate> <beanRef ref="myServiceBean" method="processLine"/> </route> <bean id="myServiceBean" class="com.mycompany.MyServiceBean"/>