2.2. camel-jms 프로젝트 빌드
Fuse Software Downloads 페이지에서 빠른 시작을
다운로드할 수 있습니다.
zip 파일의 내용을 로컬 폴더(예: quickstarts
라는 새 폴더 )로 추출합니다.
그런 다음 OSGi 번들로 /camel/camel-jms
예제를 빌드하고 설치할 수 있습니다. 이 번들에는 AMQ 7 JMS 큐로 메시지를 전송하는 Camel 경로에 대한 블루프린트 XML 정의가 포함되어 있습니다.
다음 예에서 $FUSE_HOME
은 압축 해제된 Fuse 배포의 위치입니다. 이 프로젝트를 빌드하려면 다음을 수행합니다.
Maven을 호출하여 프로젝트를 빌드합니다.
$ cd quickstarts $ mvn clean install -f camel/camel-jms/
javax.jms.ConnectionFactory
서비스가 OSGi 런타임에 게시되도록 JMS 연결 팩토리 구성을 생성합니다. 이렇게 하려면quickstarts/camel/camel-jms/src/main/resources/etc/org.ops4j.connectionfactory-amq7.cfg
를$FUSE_HOME/etc
디렉터리에 복사합니다. 이 구성은 작업 연결 팩토리를 생성하기 위해 처리됩니다. 예를 들면 다음과 같습니다.$ cp camel/camel-jms/src/main/resources/etc/org.ops4j.connectionfactory-amq7.cfg ../etc/
게시된 연결 팩토리를 확인합니다.
karaf@root()> service:list javax.jms.ConnectionFactory [javax.jms.ConnectionFactory] ----------------------------- felix.fileinstall.filename = file:$FUSE_HOME/etc/org.ops4j.connectionfactory-amq7.cfg name = artemis osgi.jndi.service.name = artemis password = admin pax.jms.managed = true service.bundleid = 251 service.factoryPid = org.ops4j.connectionfactory service.id = 436 service.pid = org.ops4j.connectionfactory.d6207fcc-3fe6-4dc1-a0d8-0e76ba3b89bf service.scope = singleton type = artemis url = tcp://localhost:61616 user = admin Provided by : OPS4J Pax JMS Config (251) karaf@root()> jms:info -u admin -p admin artemis Property │ Value ─────────┼────────────────────────── product │ ActiveMQ version │ 2.4.0.amq-711002-redhat-1 karaf@root()> jms:queues -u admin -p admin artemis JMS Queues ──────────────────────────────────── df2501d1-aa52-4439-b9e4-c0840c568df1 DLQ ExpiryQueue
번들을 설치합니다.
karaf@root()> install -s mvn:org.jboss.fuse.quickstarts/camel-jms/7.0.0.redhat-SNAPSHOT Bundle ID: 256
작동하는지 확인합니다.
karaf@root()> camel:context-list Context Status Total # Failed # Inflight # Uptime ------- ------ ------- -------- ---------- ------ jms-example-context Started 0 0 0 2 minutes karaf@root()> camel:route-list Context Route Status Total # Failed # Inflight # Uptime ------- ----- ------ ------- -------- ---------- ------ jms-example-context file-to-jms-route Started 0 0 0 2 minutes jms-example-context jms-cbr-route Started 0 0 0 2 minutes
-
Camel 경로가 시작된 즉시 Fuse 설치에 디렉토리,
work/jms/input
가 표시됩니다. 이 빠른 시작의src/main/data
디렉토리에서 찾은 파일을 새로 생성된work/jms/input
디렉터리에 복사합니다. 잠시 기다렸다가 국가별로 구성된 동일한 파일이
work/jms/output
디렉토리 아래에 있습니다.-
work/jms/output/others
의order1.xml
,order2.xml
및order4.xml
-
work/jms/output/us
의order3.xml
및order5.xml
-
work/jms/output/fr
의order6.xml
-
비즈니스 로깅을 확인하려면 로그를 참조하십시오.
2018-05-02 17:20:47,952 | INFO | ile://work/jms/input | file-to-jms-route | 58 - org.apache.camel.camel-core - 2.21.0.fuse-000077 | Receiving order order1.xml 2018-05-02 17:20:48,052 | INFO | umer[incomingOrders] | jms-cbr-route | 58 - org.apache.camel.camel-core - 2.21.0.fuse-000077 | Sending order order1.xml to another country 2018-05-02 17:20:48,053 | INFO | umer[incomingOrders] | jms-cbr-route | 58 - org.apache.camel.camel-core - 2.21.0.fuse-000077 | Done processing order1.xml
큐가 동적으로 생성되었는지 확인합니다.
karaf@root()> jms:queues -u admin -p admin artemis JMS Queues ──────────────────────────────────── DLQ 17767323-937f-4bad-a403-07cd63311f4e ExpiryQueue incomingOrders
Camel 경로 통계를 확인합니다.
karaf@root()> camel:route-info jms-example-context file-to-jms-route Camel Route file-to-jms-route Camel Context: jms-example-context State: Started State: Started Statistics Exchanges Total: 1 Exchanges Completed: 1 Exchanges Failed: 0 Exchanges Inflight: 0 Min Processing Time: 67 ms Max Processing Time: 67 ms Mean Processing Time: 67 ms Total Processing Time: 67 ms Last Processing Time: 67 ms Delta Processing Time: 67 ms Start Statistics Date: 2018-05-02 17:14:17 Reset Statistics Date: 2018-05-02 17:14:17 First Exchange Date: 2018-05-02 17:20:48 Last Exchange Date: 2018-05-02 17:20:48