티스토리 뷰
728x90
참고 : http://camel.apache.org/jms.html
RouteBuilder
from("jms:queue:test1?maxConcurrentConsumers=1&maxMessagesPerTask=1&autoStartup=true&preserveMessageQos=true") .bean(com.bluexmas.Test1Queue.class, "doTest") .to("jms:queue:test2"); from("jms:queue:test2?maxConcurrentConsumers=1&maxMessagesPerTask=1&autoStartup=true&preserveMessageQos=true") .bean(com.bluexmas.Test2Queue.class, "doTest") .to("stream:out");
Header1Object
package com.bluexmas; import java.io.Serializable; public class Header1Object implements Serializable { private static final long serialVersionUID = 1L; int age; String name; public Header1Object(int age, String name) { super(); this.age = age; this.name = name; } @Override public String toString() { return "Header1Object [age=" + age + ", name=" + name + "]"; } }
Test1Queue
package com.bluexmas; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.camel.Exchange; import org.apache.camel.Message; import com.uni.fep.bean.service.MQSenderService; import com.uni.fep.bean.util.BeanUtils; import com.uni.fep.bean.util.EnvironmentInit; public class Test1Queue { public void doTest(Exchange exchange) { System.out.println("-- Test1Queue.doTest ----------------------------"); Message in = exchange.getIn(); System.out.println("body = " + in.getBody()); System.out.println("header1 = " + in.getHeader("header1")); System.out.println("header2 = " + in.getHeader("header2")); in.setHeader("header1", "value1-1"); in.setHeader("header2", "value2"); List<String> listValue = new ArrayList<String>(); listValue.add("list1"); listValue.add("list2"); in.setHeader("header3", listValue); System.out.println("header3 = " + in.getHeader("header3")); in.setHeader("header4", new Header1Object(10, "bluexmas")); System.out.println("header4 = " + in.getHeader("header4")); } public static void main(String[] args) throws Exception { EnvironmentInit.init(); MQSenderService service = (MQSenderService)BeanUtils.getBean("MQSenderService"); String message = "Hello Camel"; Map<String, Object>map=new HashMap<String,Object>(); map.put("header1", "value1"); service.doSend("test1", map, message); Thread.sleep(5000); System.exit(0); } }
Test2Queue
package com.bluexmas; import org.apache.camel.Exchange; import org.apache.camel.Message; public class Test2Queue { public void doTest(Exchange exchange) { System.out.println("-- Test2Queue.doTest ----------------------------"); Message in = exchange.getIn(); System.out.println("body = " + in.getBody()); System.out.println("header1 = " + in.getHeader("header1")); System.out.println("header2 = " + in.getHeader("header2")); System.out.println("header3 = " + in.getHeader("header3")); System.out.println("header4 = " + in.getHeader("header4")); } }
출력결과
-- Test1Queue.doTest ---------------------------- body = Hello Camel header1 = value1 header2 = null header3 = [list1, list2] header4 = Header1Object [age=10, name=bluexmas] -- Test2Queue.doTest ---------------------------- body = Hello Camel header1 = value1-1 header2 = value2 header3 = null header4 = null Hello Camel
설명
Camel에서 기본적으로 Header의 내용은 Queue 넘어 갈때 초기화 되는데,
초기화 하지 않고, 그대로 데이터를 가지고 다니려면 preserveMessageQos=true 해주면 된다.
출력결과를 보시면 알 수 있듯이 기본 자료형외에 객체는 전달 할 수가 없는 것으로 판단된다.
header1 : 초기에 전달된 Header의 값으로 그 값을 변경했을때 변경된 값이 전달되는 것을 확인
header2 : 초기에 전달되지 않았으나 추가로 Header에 추가된 값으로 Queue 이동 후 값이 존재하는 것을 확인
Header3 : ArreyList에 기본형 데이터(String) 추가해서 Header에 추가해서 전달했으나 List 전달되지 않는 것으로 확인
Header4 : 사용자가 임으로 만들 객체를 Header에 추가 했으나 Queue 이동 후 값이 전달되지 않는 것으로 확인
300x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 동경
- 레이싱모델 익스트림 포토 페스티벌
- Delphi
- 송주경
- JavaScript
- NDK
- ffmpeg
- 일본여행
- koba2010
- Xcode
- MySQL
- flex
- Spring MVC
- 튜닝쇼 2008
- Mac
- KOBA
- Linux
- ubuntu
- Java
- android
- ble
- 지스타2007
- oracle
- Delphi Tip
- 서울오토살롱
- sas2009
- 전예희
- BPI-M4
- SAS
- Spring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함