第三章:ActiveMQ例子
本章内容
- 介绍本书每一个示例
- 使用Maven来编译和运行这些例子
- 怎样使用这些例子与ActiveMQ进行交互
ActiveMQ提供JMS规范要求的所有特性并且在这之上,提供了很多有用的特性。这些都在图3.1里描绘出来,并在本书剩下章节讨论。为了说明这些特性,我们提供了两个例子,这两个例子都是从真实商用领域得来的。相比前面的例子,这些例子更完整和简洁地展示ActiveMQ的特性。
其中一个例子是基于股票投资的,另一个例子是基于工作队列。这两个例子比ActiveMQ自带的例子更广泛地展现ActiveMQ。我们先介绍这些例子的使用场景,接着详细讨论如何使用它们。在你阅读这本书的任何时候,如果你需要回顾这些例子,你都可以回来阅读这一章。
股票投资例子演示了发布/订阅到消息传送领域。发布者向许多对该消息感兴趣的订阅者广播消息。消息发布到一个叫做主题的JMS目标,在线的订阅者客户端则接收消息。通过这种方式,代理器向每一个订阅者发送消息而不用订阅者去拉消息。每一个在线的订阅者接收到一条消息的副本。除非使用持久订阅,否则订阅者必须在线等待接收消息。在一个主题中,将使用发布/订阅模式将消息的副本发送给每一个订阅者。
工作队列例子演示里点对点消息传送领域。消息生产者发送消息到一个JMS队列,接收者则从这个队列接收消息。在点对点领域,消息的发送者和接收者没有时序性要求。队列会保存消息直到消费者准备好接收它们。如果消费者准备好,消息将发送给所有消费者,但是不会有两个或以上消费者接收到同一条消息。在点对点领域,队列里的消息通过循环方式发送到消费者。
不只是不同例子关注的消息传送领域不同,它们对应的使用场景也不同。另外,虽然接下来的例子看起来差不多,但是它们有一个很重要的不同就是应用于不同的消息传送领域。股票投资使用发布/订阅消息传送,而工作队列使用点对点的消息传送。这些例子的代码可以从Manning网站下载,URL:http://manning.com/snyder/activemq-in-action-examples-src.zip。
在这一章,首先我们会下载Maven并安装它,然后用它来编译和运行示例。之后,我们将回顾每一个例子并解释每一个例子的行为。在完成这些练习后,你将对这些例子有足够的了解可以在本书的其它部分认出它们,并且看看它们是如何被用来演示ActiveMQ特性。
3.1 下载Maven并编译例子
下面是下载和安装Maven的步骤:
- 从Apache Sofeware Foundation下载Maven,URL:http://maven.apache.org/。Maven提供tar和zip包,依据你操作系统选择不同的包。
- 在你的计算机上将压缩包解压到一个永久路径。
- 创建一个环境变量M2_HOME,并让它指向Maven目录
- 在Unix上,将$M2_HOME/bin目录添加到环境变量(在Windows上,将$M2_HOME/bin目录添加到%PATH%变量里)
- 通过运行如下命令确认Maven正确安装。
$ mvn -version
Apache Maven 2.2.1 (r801777; 2009-08-06 13:16:01-0600)
Java version: 1.5.0_19
Java home: /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home
Default locale: en_US, platform encoding: MacRoman
OS name: "mac os x" version: "10.6.2" arch: "i386" Family: "unix"
如果Maven正确安装,你将看到与上面相似的输出。如果没看到相似输出,你必须先使它正确再进入下一步。你
可以在下面的地址获取更多关于安装Maven的说明.http://maven.apache.org/download.html#Installation
你必须有因特网连接
要使用这些例子,你必须有因特网连接。因为Maven必须为这些例子下载必须的依赖包。
如果你已经成功安装Maven,现在必须解压和编译这些例子了。在把包含源代码的例子解压后,你就可以编译了。现在移动到amq-in-action-example-src目录,然后运行下面的命令。为了将命令与输出区分开,下面的命令将用粗体字显示。
[amq-in-action-example-src] $ mvn clean install
[INFO] Scanning for projects...
[INFO] -------------------------------------------------------------------
-----
[INFO] Building ActiveMQ in Action Examples
[INFO] task-segment: [clean, install]
[INFO] -------------------------------------------------------------------
-----
Downloading: http://localhost:8081/nexus/content/groups/public/org/apache/
maven/plugins/maven-clean-plugin/2.2/maven-clean-plugin-2.2.pom
3K downloaded (maven-clean-plugin-2.2.pom)
...
[INFO] [install:install {execution: default-install}]
[INFO] Installing /private/tmp/amq-in-action-example-src/target/
activemq-in-action-examples.jar to /Users/bsnyder/.m2/repository/org/
apache/activemq/book/activemq-in-action-examples/1.0-SNAPSHOT/
activemq-in-action-examples-1.0-SNAPSHOT.jar
[INFO] Installing /private/tmp/amq-in-action-example-src/target/
activemq-in-action-examples-src.zip to /Users/bsnyder/.m2/repository/org/
apache/activemq/book/activemq-in-action-examples/1.0-SNAPSHOT/
activemq-in-action-examples-1.0-SNAPSHOT-src.zip
[INFO] -------------------------------------------------------------------
-----
[INFO] BUILD SUCCESSFUL
[INFO] -------------------------------------------------------------------
-----
[INFO] Total time: 57 seconds
[INFO] Finished at: Fri Dec 04 22:35:57 MST 2009
[INFO] Final Memory: 24M/44M
[INFO] -------------------------------------------------------------------
-----
由于输出信息太多,上面省略了一些。上面的信息说明了编译成功。当你看到BUILD SUCCESSFUL信息的时候,你就可以进入下面的学习了。如果你看到BUILD FAILURE,你必须找出出错原因并且解决后才能进入下一步。
- 大小: 18.1 KB
分享到:
相关推荐
protobuf-3.1.x.zip是一个包含Google开源的Protocol Buffers(简称protobuf)版本3.1.x的压缩包。Protocol Buffers是一种...在protobuf-3.1.x版本中,可能已经修复了一些早期版本的bug,并增加了新的特性和性能优化。
3. **验证配置**:重启终端并重新执行Maven命令,如`mvn version`,检查是否能看到已设置的内存参数。 示例输出: ``` E:\test>mvn version E:\test>set MAVEN_OPTS=-Xms128m -Xmx512m Maven version: 2.0.9 Java ...
"Eclipse导入IntelliJ IDEA的Maven项目示例" ...本文提供了一个将IntelliJ IDEA的Maven项目导入Eclipse的示例,旨在帮助开发者更方便地在不同的IDE之间切换项目,并提供了解决可能遇到的问题的方法。
这部分通过一个简单的示例项目来演示Maven的基本用法,包括创建项目、编译代码、运行程序等基本步骤。 **4.2 Maven核心概念** - **4.2.1 Maven插件与目标**:Maven插件包含了具体的构建逻辑,每个插件都有一个或多...
使用`mvn package`命令来构建项目,该命令将编译源代码、运行测试并打包成一个可部署的JAR文件。 **4.2 查看构建结果** 构建成功后,可以在`target`目录下找到生成的JAR文件。例如,在`my-app/target`目录下将有一...
在MacOS上安装Maven通常可以通过Homebrew等包管理器轻松完成,也可以手动下载并解压Maven。 **2.3.2 在Microsoft Windows上安装Maven** 在Windows上安装Maven需要将Maven解压到某个目录,并确保环境变量设置正确。 ...
《Akka HTTP与JSON集成:探索开源项目fabric8-maven-generator-api-3.1.62.zip中的精华》 在当今的软件开发领域,高效、可靠的网络通信框架和灵活的数据序列化工具是不可或缺的组件。Akka HTTP作为一款强大的、反应...
如果未找到,则会从中央仓库或其他远程仓库下载并缓存该依赖。 #### 5.4 插件使用 Maven插件是用来扩展Maven功能的关键组件。常见的插件包括但不限于: - **maven-compiler-plugin**:用于编译源代码。 - **maven-...
Pom.xml:配置文件示例(含的编译环境) <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=...
定义一个简单的天气查询项目,该示例项目展示了如何创建Maven项目、添加依赖、编写单元测试等内容。 **4.2 创建SimpleWeather项目** 通过Maven的archetype模板生成项目骨架后,可以进一步定制项目的POM文件。 **...
Maven Compiler Plugin负责项目的编译工作。在Maven 3中,默认的JDK版本是1.5,而在Maven 2中则是1.3。开发者可以通过配置该插件来指定源代码和目标代码的JDK版本,如示例所示,将源代码和目标代码的版本设置为1.8,...
Maven是一款流行的自动化构建工具,它能够帮助开发者自动完成项目的构建过程,包括编译、测试、打包、部署等一系列任务。对于Java开发者来说,掌握Maven的使用非常重要。 #### 二、Maven的安装 **2.1 安装前准备**...
2. **执行构建命令**:输入`mvn clean compile`以清理并编译项目;输入`mvn test`以运行单元测试;输入`mvn package`以打包项目。 #### 5. 总结 通过以上步骤,我们已经完成了Maven的基本下载、安装、配置以及使用...
- 使用IDE如Eclipse或IntelliJ IDEA导入项目,并配置相应的Maven或Gradle构建工具。 - 编译并运行项目,XFire会监听一个HTTP端口,等待接收Web服务请求。 - 客户端可以通过JAX-WS或JAXB等技术调用该Web服务。 5....
依赖管理允许项目声明其所需的外部库,Maven 会自动下载并配置这些库。 **4.3 仓库(Repositories)** Maven 使用本地仓库存储已下载的依赖库副本,同时支持远程仓库如 Maven Central。 **4.4 插件(Plugins)** ...