當柳上原的風吹向天際的時候...
真正的快樂來源于創(chuàng)造
BlogJava
::
首頁
::
聯(lián)系
::
聚合
::
管理
368 Posts :: 1 Stories :: 201 Comments :: 0 Trackbacks
公告
常用鏈接
我的隨筆
我的文章
我的評論
我的參與
最新評論
留言簿
(3)
給我留言
查看公開留言
查看私人留言
隨筆分類
Algorithm
C/C++/VC(2)
CSS(8)
DB(10)
Dojo(1)
HTML(2)
IIS(1)
Java(12)
JavaScript(15)
RSA(8)
Server(3)
SQL(2)
Teambiz(15)
WMB(21)
相冊
8thCisis
SqlToolBox
相冊一
個人常用鏈接
51CTO
Box網(wǎng)絡上傳下載
CSDN
IP地址手機號查詢
VOA English
VVG的前端設計
前端設計師聶微東
多特軟件站
大連停水信息
大連建設網(wǎng)
常用Jar包對照表
常用網(wǎng)址總匯
招商銀行
站長站圖標下載
綠軟發(fā)布頁
網(wǎng)頁模板下載
網(wǎng)頁模板之家(65)
最新隨筆
1.?此博停止更新
2.?給DB2增加刪除字段二三事
3.?連接到DB2數(shù)據(jù)庫并向其中導入數(shù)據(jù)
4.?ZT:DB2 SQL 消息(3000-6999)
5.?DB21061E 未初始化命令行環(huán)境的解決
6.?DB2無法在Win7上安裝的解決
7.?ZT:SQL4414N “DB2 管理服務器”處于不活動狀態(tài) 的處理
8.?如何處理DB2JAVIT:RC=9505問題
9.?T410不能換上1600的DDr3內(nèi)存
10.?WIN7中讓任務欄項目別合并
積分與排名
積分 - 393111
排名 - 145
最新評論
1.?re: 使用MD5對存放在數(shù)據(jù)庫中用戶密碼進行保護[未登錄]
請問一下你那個service.hasSameName(name) 里面的service 是哪里得到的?
--Dr
2.?re: 在頁面打開SWF文件的代碼
dsd
--ss
3.?re: 使用BarCode4j生成條形碼和二維碼的例程
zzzz
--zzz
4.?re: 對用戶密碼進行加鹽處理
老問題了,偶然間看到這個問題。為了不誤導別人希望提醒下后來者,加鹽不要用用戶名。用戶名同樣是可見的太容易逆推了,而且用戶名一變密碼就不行了。
--路人
5.?re: 在網(wǎng)絡通訊中采用混合方式對信息進行加密
你給的那個程序 代碼鏈接 打不開了
是不是 失效了 能不能再給個
--#123
閱讀排行榜
1.?用Wireshark從http數(shù)據(jù)包中得到用戶的登錄信息(52908)
2.?對用戶密碼進行加鹽處理(11809)
3.?使用RSA進行信息加密解密的WebService示例(11038)
4.?實現(xiàn)子Div在父Div中水平居中的一種方法(10275)
5.?Spring在Web應用中的配置(8644)
在ActiveMQ5.3.0上建立隊列和主題以及通過它們收發(fā)消息的實現(xiàn)
相對于Weblogic這種大家伙來說,在ActiveMQ5.3.0上建立隊列和主題還是相對容易的,當然如果路沒走對也要費一番周折,本人在此寫出小文,希望能對ActiveMQ初學者有所裨益,順便感謝網(wǎng)絡上那些辛勤的有共享精神的ActiveMQ研究者和鄙視一下那些懶惰的有剽竊習慣的轉載者。
一.下載安裝ActiveMQ
。
在
http://activemq.apache.org/
你可以得到ActiveMQ的最新版本,本人下載的是win版本,下載到本地后解壓到一個目錄(以后簡稱ActiveMQ解壓目錄)就算安裝完畢了,確實很簡單。
二.啟動ActiveMQ。
啟動它也很容易,找到ActiveMQ解壓目錄下的bin目錄,雙擊activemq.bat就可以了,如果嫌麻煩可以做成一個批處理文件,然后讓計劃任務自動調(diào)用它。activemq.bat啟動后會出現(xiàn)一個命令行窗口,這意味著broker已經(jīng)準備就緒了。
三.創(chuàng)建隊列和主題
ActiveMQ啟動后,我們可以就使用
http://localhost:8161/admin
進入ActiveMQ的消息管理后臺系統(tǒng),如下圖:
在這個頁面中有一排橫向菜單,如果你需要
創(chuàng)建隊列Queue,點擊Queues菜單,輸入你想要的隊列的名稱,再點擊Create按鈕,隊列即被創(chuàng)建好
了;主題也很類似,你
點擊Topics菜單,輸入你想要的主題的名稱,再點擊create按鈕,主題也就建立好了
。確實是非常快捷方便。本人建立了隊列DealQueue和主題BuyTopic,用于下面的程序。
四.利用隊列和主題收發(fā)消息
。
有了Spring的幫助,JMS處理能省卻很多功夫,我們只需要進行對應的配置即可,下面是通過隊列DealQueue和主題BuyTopic收發(fā)消息的配置和消息發(fā)送器監(jiān)聽器源代碼,大家可以參考,另外也可以從這
這里(注意為了減小體積,包都被刪除了,請到ActiveMQ安裝目錄的lib尋找相應的包載入,其它通用包請自行尋找)
下載源碼查看。
Spring上下文配置文件bean.xml,這里文件里配置的有連接工廠,jms模板,目的地,消息發(fā)送者和接受者等。
<?
xml version="1.0" encoding="UTF-8"
?>
<!
DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"
>
<
beans
>
<!--
連接工廠
-->
<
bean
id
="connectionFactory"
class
="org.apache.activemq.ActiveMQConnectionFactory"
>
<
property
name
="brokerURL"
>
<
value
>
tcp://192.168.0.1:61616
</
value
>
</
property
>
</
bean
>
<!--
JMS模板
-->
<
bean
id
="jmsTemplate"
class
="org.springframework.jms.core.JmsTemplate"
>
<
property
name
="connectionFactory"
>
<
ref
bean
="connectionFactory"
/>
</
property
>
</
bean
>
<!--
****************************
-->
<!--
以下是隊列DealQueue的配置
-->
<!--
****************************
-->
<!--
在ActiveMQ上配置的隊列DealQueue
-->
<
bean
id
="dest4DealQueue"
class
="org.apache.activemq.command.ActiveMQQueue"
>
<
constructor-arg
index
="0"
>
<
value
>
DealQueue
</
value
>
</
constructor-arg
>
</
bean
>
<!--
JMS 消息發(fā)送者 ,用于給DealQueue發(fā)送消息
-->
<
bean
id
="jmsSender4DealQueue"
class
="com.heyang.sender.JmsSender"
>
<
property
name
="jmsTemplate"
ref
="jmsTemplate"
/>
<
property
name
="destination"
ref
="dest4DealQueue"
/>
</
bean
>
<!--
JMS 消息監(jiān)聽容器,Spring容器啟動后自行監(jiān)聽DealQueue,有消息后會交給dealQueueListener處理
-->
<
bean
id
="listenerContainer4DealQueue"
class
="org.springframework.jms.listener.DefaultMessageListenerContainer"
>
<
property
name
="connectionFactory"
ref
="connectionFactory"
/>
<
property
name
="concurrentConsumers"
value
="1"
/>
<
property
name
="destination"
ref
="dest4DealQueue"
/>
<
property
name
="messageListener"
ref
="dealQueueListener"
/>
</
bean
>
<!--
MDP:用于接收DealQueue上的消息
-->
<
bean
id
="dealQueueListener"
class
="com.heyang.listener.DealQueueListener"
/>
<!--
****************************
-->
<!--
以下是主題BuyTopic的配置
-->
<!--
****************************
-->
<!--
在ActiveMQ上配置的主題
-->
<
bean
id
="dest4BuyTopic"
class
="org.apache.activemq.command.ActiveMQTopic"
>
<
constructor-arg
index
="0"
>
<
value
>
BuyTopic
</
value
>
</
constructor-arg
>
</
bean
>
<!--
JMS 消息發(fā)送者 ,用于給BuyTopic發(fā)送消息
-->
<
bean
id
="jmsSender4BuyTopic"
class
="com.heyang.sender.JmsSender"
>
<
property
name
="jmsTemplate"
ref
="jmsTemplate"
/>
<
property
name
="destination"
ref
="dest4BuyTopic"
/>
</
bean
>
<!--
JMS 消息監(jiān)聽容器,Spring容器啟動后自行監(jiān)聽BuyTopic,有消息后會交給buyTopicListener處理
-->
<
bean
id
="listenerContainer4BuyTopic"
class
="org.springframework.jms.listener.DefaultMessageListenerContainer"
>
<
property
name
="connectionFactory"
ref
="connectionFactory"
/>
<
property
name
="concurrentConsumers"
value
="1"
/>
<
property
name
="destination"
ref
="dest4BuyTopic"
/>
<
property
name
="messageListener"
ref
="buyTopicListener"
/>
</
bean
>
<!--
MDP:用于接收BuyTopic上的消息
-->
<
bean
id
="buyTopicListener"
class
="com.heyang.listener.BuyTopicListener"
/>
</
beans
>
三個對應的類
:
1.JMS消息發(fā)送者
:
package
com.heyang.sender;
import
javax.jms.Destination;
import
javax.jms.JMSException;
import
javax.jms.Session;
import
org.apache.activemq.Message;
import
org.springframework.jms.core.JmsTemplate;
import
org.springframework.jms.core.MessageCreator;
/** */
/**
* 此類用發(fā)送消息
*
@author
何楊
* @date 2009-10-15
* @time 上午07:44:15
*/
public
class
JmsSender
{
//
JMS模板
private
JmsTemplate jmsTemplate;
//
目的地
private
Destination destination;
public
void
send(
final
String msg)
{
jmsTemplate.send(destination,
new
MessageCreator()
{
public
Message createMessage(Session session)
throws
JMSException
{
return
(Message) session.createTextMessage(msg);
}
}
);
}
public
JmsTemplate getJmsTemplate()
{
return
jmsTemplate;
}
public
void
setJmsTemplate(JmsTemplate jmsTemplate)
{
this
.jmsTemplate
=
jmsTemplate;
}
public
Destination getDestination()
{
return
destination;
}
public
void
setDestination(Destination destination)
{
this
.destination
=
destination;
}
}
JMS消息監(jiān)聽者,用于監(jiān)聽BuyTopic:
package
com.heyang.listener;
import
javax.jms.Message;
import
javax.jms.MessageListener;
import
javax.jms.TextMessage;
import
org.apache.log4j.Logger;
/** */
/**
* JMS消息監(jiān)聽者,用于監(jiān)聽BuyTopic。
*
*
@author
何楊
* @date 2009-10-13
* @time 下午04:10:33
*/
public
class
BuyTopicListener
implements
MessageListener
{
public
static
Logger logger
=
Logger.getLogger(DealQueueListener.
class
);
public
void
onMessage(Message message)
{
if
(message
instanceof
TextMessage)
{
//
消息轉化
String msg
=
""
;
try
{
msg
=
((TextMessage) message).getText();
System.out.println(
"
從BuyTopic收到消息:
"
+
msg);
}
catch
(Exception ex)
{
logger.error(ex);
ex.printStackTrace();
return
;
}
}
}
}
JMS消息監(jiān)聽者,用于監(jiān)聽DealQueue
:
package
com.heyang.listener;
import
javax.jms.Message;
import
javax.jms.MessageListener;
import
javax.jms.TextMessage;
import
org.apache.log4j.Logger;
/** */
/**
* JMS消息監(jiān)聽者,用于監(jiān)聽DealQueue。
*
*
@author
何楊
* @date 2009-10-13
* @time 下午04:10:33
*/
public
class
DealQueueListener
implements
MessageListener
{
public
static
Logger logger
=
Logger.getLogger(DealQueueListener.
class
);
public
void
onMessage(Message message)
{
if
(message
instanceof
TextMessage)
{
//
消息轉化
String msg
=
""
;
try
{
msg
=
((TextMessage) message).getText();
System.out.println(
"
從DealQueue收到消息:
"
+
msg);
}
catch
(Exception ex)
{
logger.error(ex);
ex.printStackTrace();
return
;
}
}
}
}
用戶可以使用Test.java中的語句來測試一下效果。另外有一點想贅述一下,上述兩個消息監(jiān)聽者是受Spring容器控制的,它們之所以能成為Message Diven Pojo是因為Spring容器自啟動開始就對目標進行輪詢,如果發(fā)現(xiàn)有消息就通知指定消息監(jiān)聽者響應,這樣消息監(jiān)聽者的onMessage函數(shù)就會被調(diào)用,其背后的調(diào)用者即上面配置文件中的listenerContainer4DealQueue和listenerContainer4BuyTopic,我們雖沒有直接使用它們但它們從Spring上下文啟動伊始就一直開始工作了,從log4j的輸出就能看出這一點,當然為了消除輪詢輸出的消極影響,你可以調(diào)高log4j的輸出級別。
但愿此文能對你有所幫助,全文完。
posted on 2009-10-27 09:00
何楊
閱讀(4136)
評論(0)
編輯
收藏
Copyright @ 何楊
Powered by:
.Text
and
ASP.NET
Theme by:
.NET Monster
主站蜘蛛池模板:
亚洲人成网亚洲欧洲无码久久
|
A毛片毛片看免费
|
精品亚洲麻豆1区2区3区
|
在线免费观看国产视频
|
亚洲免费视频观看
|
三根一起会坏掉的好痛免费三级全黄的视频在线观看
|
午夜无遮挡羞羞漫画免费
|
无码人妻一区二区三区免费n鬼沢 无码人妻一区二区三区免费看
|
亚洲成年网站在线观看
|
91亚洲导航深夜福利
|
亚洲日本va在线视频观看
|
免费中文字幕不卡视频
|
在线观看亚洲免费视频
|
日韩免费一区二区三区在线
|
国产日韩AV免费无码一区二区
|
狠狠热精品免费观看
|
在线观看免费亚洲
|
亚洲精品女同中文字幕
|
亚洲www在线观看
|
亚洲午夜精品国产电影在线观看
|
亚洲色中文字幕无码AV
|
中文字幕亚洲不卡在线亚瑟
|
又粗又大又猛又爽免费视频
|
日韩a级毛片免费观看
|
免费观看的av毛片的网站
|
最近免费中文字幕大全
|
永久免费av无码不卡在线观看
|
16女性下面无遮挡免费
|
1000部啪啪毛片免费看
|
最近免费中文字幕大全免费
|
日韩插啊免费视频在线观看
|
日韩精品内射视频免费观看
|
午夜精品射精入后重之免费观看
|
亚洲国产精品成人精品小说
|
亚洲AV无码专区在线播放中文
|
区久久AAA片69亚洲
|
亚洲夜夜欢A∨一区二区三区
|
亚洲午夜国产片在线观看
|
亚洲人成影院在线观看
|
亚洲精品高清无码视频
|
亚洲精品~无码抽插
|