锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
浣嗗鎬殑鏄彧鏈変竴涓狹DB鑳芥甯歌鍙朆ytesMesage錛屽彟涓涓狹DB璇誨彇BytesMessage.readBytes()濮嬬粓榪斿洖-1
鍚屾牱鐨勬祴璇曠▼搴忥紝鍦╓ebLogic涓婂氨姝e父銆?br />
JBoss鎬庝箞浼?xì)鍙戦佸悓涓涓狟ytesMessage瀵硅薄鍒版墍鏈夌殑subscriber錛熸湁浜鴻В鍐寵繃鍚屾牱鐨勯棶棰樺悧錛?
google浜?jiǎn)寰堥暱鏃堕椷_(dá)紝涔熷皾璇曚簡(jiǎn)寰堝鏂規(guī)硶錛屼技涔庢病浠涔堝ソ鐨勫姙娉曘備竴縐嶆柟娉曟槸閬垮厤浣跨敤BytesMessage, 榪樻湁涓縐嶆柟娉曞氨鏄嬌鐢ㄥ弽灝勶紝鐩存帴澶嶅埗JBoss鐨凚ytesMessage瀹炵幇銆?br />
public void onMessage(Message msg) {
BytesMessageProxy msgProxy = (BytesMessageProxy)msg;
Class clazz = MessageProxy.class;
Field field = clazz.getDeclaredField("message");
field.setAccessible(true);
JBossMessage rawMsg = (JBossMessage)field.get(msgProxy);
BytesMessage newMsg = (BytesMessage)rawMsg.doCopy();
// read data from newMsg
}
"Thread-1" prio=6 tid=0x00c70bd8 nid=0x914 runnable [0x02ebf000..0x02ebfc68]
at java.util.HashMap.put(HashMap.java:420)
at TestLock$2.run(TestLock.java:20)
"Thread-0" prio=6 tid=0x00c70a50 nid=0x578 runnable [0x02e7f000..0x02e7fb68]
at java.util.HashMap.put(HashMap.java:420)
at TestLock$1.run(TestLock.java:11)