﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-There can be miracles when you believe.-文章分类-JMS</title><link>http://www.blogjava.net/mlxlzc/category/37486.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 09 Feb 2009 08:56:27 GMT</lastBuildDate><pubDate>Mon, 09 Feb 2009 08:56:27 GMT</pubDate><ttl>60</ttl><item><title>JMS-初探</title><link>http://www.blogjava.net/mlxlzc/articles/253611.html</link><dc:creator>goto</dc:creator><author>goto</author><pubDate>Fri, 06 Feb 2009 09:20:00 GMT</pubDate><guid>http://www.blogjava.net/mlxlzc/articles/253611.html</guid><wfw:comment>http://www.blogjava.net/mlxlzc/comments/253611.html</wfw:comment><comments>http://www.blogjava.net/mlxlzc/articles/253611.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/mlxlzc/comments/commentRss/253611.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/mlxlzc/services/trackbacks/253611.html</trackback:ping><description><![CDATA[1：JMS的使用类似于JDBC ，SUN只是提出一个规范接口，由不同的MOM厂商实现。<br />
<br />
2: MQ 启动后应用程序可以独立的操作JMS接口,应用程序并不依赖于容器，如JBOSS。直接通过jndi访问MQ。<br />
<br />
3：使用JBOSS的MQ应用程序需要包含如下jar文件：<br />
&nbsp;&nbsp; <img alt="" src="http://www.blogjava.net/images/blogjava_net/mlxlzc/jboss-mq-jar.jpg" width="147" height="116" /><br />
<br />
4：JBOSS默认的MQ访问端口为1099 <strong><span style="color: #4070ff;">"jnp://127.0.0.1:1099"<br />
<br />
</span></strong><span style="color: #4070ff;"><span style="color: #020000;"><span style="color: #020000;"><span style="color: #4070ff;"><span style="color: #020000;"><span style="color: #020000;"><span style="color: #4070ff;"><span style="color: #020000;"><span style="color: #020000;"><span style="color: #4070ff;"><span style="color: #020000;"><span style="color: #080000;"><span style="color: #4070ff;"><span style="color: #020000;"><span style="color: #020000;"><span style="color: #4070ff;"><span style="color: #020000;"><span style="color: #020000;"><span style="color: #4070ff;"><span style="color: #020000;"><span style="color: #020000;"><span style="color: #4070ff;"><span style="color: #020000;">5: </span></span><strong><span style="color: #4070ff;">使用实例</span></strong></span></span></span><strong></strong></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><strong><span style="color: #4070ff;"><br />
<br />
创建 TOPIC PUBLISHER<br />
&nbsp; </span></strong><br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hashtable&nbsp;props&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Hashtable();<br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;props.put(Context.INITIAL_CONTEXT_FACTORY,<br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">org.jnp.interfaces.NamingContextFactory</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;props.put(Context.PROVIDER_URL,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">jnp://127.0.0.1:1099</span><span style="color: #000000;">"</span><span style="color: #000000;">);&nbsp;<br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;props.put(</span><span style="color: #000000;">"</span><span style="color: #000000;">java.naming.rmi.security.manager</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">yes</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;props.put(Context.URL_PKG_PREFIXES,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">org.jboss.naming</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Context&nbsp;jndiContext&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;InitialContext(props);<br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">从JNDI得ConnectionFactory</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TopicConnectionFactory&nbsp;topicFactory&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(TopicConnectionFactory)&nbsp;jndiContext<br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.lookup(factoryJNDI);<br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">用ConnectionFactory创建连接</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;topicConnection&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;topicFactory.createTopicConnection();<br />
</span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">使用连接创建会话</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;topicSession&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;topicConnection.createTopicSession(</span><span style="color: #0000ff;">false</span><span style="color: #000000;">,<br />
</span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Session.AUTO_ACKNOWLEDGE);<br />
</span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">查找JNDI&nbsp;topic并使用会话创建之</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;topic&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(Topic)&nbsp;jndiContext.lookup(topicJNDI);<br />
</span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;topicPublisher&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;topicSession.createPublisher(topic);</span></div>
<strong><span style="color: #4070ff;"><br />
创建 TOPIC SUBSCRIBER<br />
&nbsp;</span></strong><br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">创建Subscriber</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;topicSubscriber&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;topicSession.createSubscriber(topic);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">注册MessageListener&nbsp;必须实现onMessage方法</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;topicSubscriber.setMessageListener(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;topicConnection.start();<br />
</span></div>
<img src ="http://www.blogjava.net/mlxlzc/aggbug/253611.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/mlxlzc/" target="_blank">goto</a> 2009-02-06 17:20 <a href="http://www.blogjava.net/mlxlzc/articles/253611.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>