--- layout: post title: 'Spring+ActiveMQ: 嵌入式和独立运行ActiveMQ的配置示例' comments: true published: true date: '2012-05-24 22:42:41' link: http://opoo.org/spring-activemq-sample/ post_id: 177 url: '/spring-activemq-sample/' excerpt: "<p>ActiveMQ 服务可以嵌入在其它应用内部运行,也可以作为独立的JMS服务器启动运行。<p>在 ActiveMQ 启动后,我们就可以利用 Spring 的 JmsTemplate 作为 JMS 客户端,很方便的生产和消费 JMS 消息了。<p>这个简单的示例用于演示嵌入式启动 ActiveMQ,和独立运行 ActiveMQ 的 Spring 配置,<strong><a title='示例包下载' href='https://sourceforge.net/projects/opoo/files/samples/spring-activemq-sample.zip/download' target='_blank'>请点击这里下载示例包</a></strong>。" categories: [Java] tags: [ActiveMQ, JMS, Maven, Spring] description: "本文简单介绍通过Spring集成ActiveMQ时嵌入式启动和独立启动ActiveMQ的配置方法,提供示例下载,并说明实例运行步骤。" keywords: "ActiveMQ, Spring, JMS, Maven, Java" --- <p>ActiveMQ 服务可以嵌入在其它应用内部运行,也可以作为独立的JMS服务器启动运行。 <p>在 ActiveMQ 启动后,我们就可以利用 Spring 的 JmsTemplate 作为 JMS 客户端,很方便的生产和消费 JMS 消息了。 <p>这个简单的示例用于演示嵌入式启动 ActiveMQ,和独立运行 ActiveMQ 的 Spring 配置,<strong><a title="示例包下载" href="https://sourceforge.net/projects/opoo/files/samples/spring-activemq-sample.zip/download" target="_blank">请点击这里下载示例包</a></strong>。 <!--more--> <p><strong>示例运行步骤:</strong> <p><strong>0. 前提</strong> <p>安装 Maven。[<a title="用Google搜索如何安装Maven" href="http://www.google.com.hk/search?ix=sea&sourceid=chrome&ie=UTF-8&q=%E5%AE%89%E8%A3%85+Maven" target="_blank">搜索</a>] <p>下载实例包,解压,打开命令行(或 Linux 终端),进入 pom.xml 所在目录(后面称这个目录为“示例根目录”)。 <p><strong>1. 嵌入式启动 ActiveMQ 运行示例</strong> <p>在示例根目录执行 <code>mvn exec:java</code> 即可运行示例程序,对应配置文件为 <code>spring-jms.xml</code>。 如果你的电脑没有 D: 盘或者你在 Linux 下运行该示例,请执行 <pre>mvn exec:java -Dmsg.data.home.dir=C:/jmsDataDir</pre> 或者 <pre>mvn exec:java -Dmsg.data.home.dir=/var/jmsDataDir</pre> 属性 <code>msg.data.home.dir</code> 指定了ActiveMQ本地的数据目录。 <p><strong>2. 独立启动 ActiveMQ 后运行示例</strong> 下载 ActiveMQ 发行包(<a href="http://activemq.apache.org/download.html" target="_blank">http://activemq.apache.org/download.html</a>),选zip即可。解压后进入 bin 目录,执行 activemq.bat 启动 ActiveMQ 服务。 <p>然后在示例根目录执行 <code>mvn exec:java -Dremote=true</code> 即可运行示例程序,对应配置文件为<code>spring-jms-remote.xml</code>。 如果 ActiveMQ 服务和示例的不在同一台机器上运行,则需要在运行时指定 ActiveMQ 的 brokerURL ,例如: <pre>mvn exec:java -Dremote=true -Dbroker.url=tcp://192.168.1.99:61666</pre> <em>提示:在独立启动ActiveMQ的模式下,可以从pom.xml去掉对包<code>org.apache.activemq:activemq-ra</code>的依赖,使得应用更精炼。</em> <p><a href="/wp-content/uploads/2012/05/activemq-jms-console-screenshot.jpg"><img class="alignnone wp-image-186" title="activemq-jms-console-screenshot" alt="" src="/wp-content/uploads/2012/05/activemq-jms-console-screenshot.jpg" width="600" height="40" /></a> <p> <p>相关链接: <ul> <li><strong style="line-height: 1.714285714; font-size: 1rem;">示例下载</strong><span style="line-height: 1.714285714; font-size: 1rem;">: </span><a style="line-height: 1.714285714; font-size: 1rem;" title="示例包下载" href="https://sourceforge.net/projects/opoo/files/samples/spring-activemq-sample.zip/download" target="_blank">https://sourceforge.net/projects/opoo/files/samples/spring-activemq-sample.zip/download</a></li> <li><span style="line-height: 1.714285714; font-size: 1rem;">Apache ActiveMQ: </span><a style="line-height: 1.714285714; font-size: 1rem;" title="Apache ActiveMQ" href="http://activemq.apache.org" target="_blank">http://activemq.apache.org</a></li> <li>Spring + ActiveMQ: <a title="ActiveMQ Spring Support" href="http://activemq.apache.org/spring-support.html" target="_blank">http://activemq.apache.org/spring-support.html</a></li> <li>内嵌ActiveMQ: <a title="How to embed a broker inside a connection" href="http://activemq.apache.org/how-do-i-embed-a-broker-inside-a-connection.html" target="_blank">http://activemq.apache.org/how-do-i-embed-a-broker-inside-a-connection.html</a></li> </ul> <strong>Update(2012-05-28):</strong> <p>由于 License 限制,示例所需的包 javax:jms:1.1:jar 在 Maven 中心库并不存在,需要<a title="JMS" href="http://www.oracle.com/technetwork/java/jms/index.html" target="_blank">在这里下载</a>。 <p>或者添加本站 Maven 库配置到你的 pom.xml 文件: <pre class="brush:xml"><repositories> <repository> <id>opoo.org</id> <name>opoo.org repository</name> <url>http://opoo.org/maven/releases</url> </repository> </repositories></pre>