13.4. XML 메시지 필터링
AMQ Broker는 XPath를 사용하여 XML 본문이 포함된 텍스트 메시지를 필터링하는 방법을 제공합니다. XPath(XML 경로 언어)는 XML 문서에서 노드를 선택하기 위한 쿼리 언어입니다.
텍스트 기반 메시지만 지원됩니다. 대규모 메시지 필터링은 지원되지 않습니다.
텍스트 기반 메시지를 필터링하려면 XPATH ' 형식 의 MessageSelector를 만들어야 합니다{expressi}
.
메시지 본문의 예
<root> <a key='first' num='1'/> <b key='second' num='2'>b</b> </root>
XPath 쿼리에 따라 필터링
PATH 'root/a'
XPath는 메시지의 본문에 적용되며 XML의 구문 분석이 필요하므로 필터링은 일반 필터보다 훨씬 느릴 수 있습니다.
XPath 필터는 다음 프로토콜을 사용하여 생산자와 소비자와 함께 지원됩니다.
- OpenWire JMS
- 코어(및 코어 JMS)
- STOMP
- AMQP
XML 파서 구성
기본적으로 브로커가 사용하는 XML Parser는 JDK에서 사용하는 플랫폼 기본 DocumentBuilderFactory 인스턴스입니다.
XPath 기본 구성에 사용되는 XML 파서에는 다음 설정이 포함됩니다.
그러나 구현 관련 문제를 해결하기 위해 artemis.profile
구성 파일에서 시스템 속성을 구성하여 기능을 사용자 지정할 수 있습니다.
org.apache.activemq.documentBuilderFactory.feature:prefix
기능 구성 예
-Dorg.apache.activemq.documentBuilderFactory.feature:http://xml.org/sax/features/external-general-entities=true