- 浏览: 373329 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
y806839048:
启动activemq我试了,也不行
ActiveMQ5.0实战三:使用Spring发送,消费topic和queue消息 -
y806839048:
是不是要另外启动activemq
ActiveMQ5.0实战三:使用Spring发送,消费topic和queue消息 -
y806839048:
为什么我的两个应用中,不能实现通信
ActiveMQ5.0实战三:使用Spring发送,消费topic和queue消息 -
fengfujie:
[flash=200,200][/flash][tr][th] ...
JMS消息类型模型 -
fengfujie:
...
JMS消息类型模型
/**
*作者:andyao,email:andyaoy@gmail.com
*http://andyao.iteye.com/blog/153171
*/
ActiveMQ5.0实战二: 基本配置
ActiveMQ5.0实战三:使用Spring发送,消费topic和queue消息
你能讲清楚一点吗?
目前我们的project使用的就是ActiveMQ5.0, jvm embedder和单独的ActiveMQ5.0的服务器使用都没有问题。
目前使用的ActiveMQ5.0的XSD,没有错误
这个问题也没有碰到过,你看是不是你的messageConverter有问题?你的消息类型是POJO吗?
我使用的MessageConverter如下
可以这样说,都是实现了JMS规范.
但是IBM MQ收费,当然功能更强大。
ActiveMQ是开源的。
我喜欢ActiveMQ是开源的,一切好东西都要有开源的,要不然外国大厂商和会IBM mq的人牛的不行。
可以这样说,都是实现了JMS规范.
但是IBM MQ收费,当然功能更强大。
ActiveMQ是开源的。
简介
ActiveMQ 是开源的JMS实现,Geronimo应用服务器就是使用的ActiveMQ提供JMS服务。ActiveMQ5.0相比以前版本提供了一些非常有用的新功能:
- AMQ Message Store (Faster Persistence!)
- Cursors (To handle very large number of stored messages)
- Blob Messages
- Command Agent
- Enterprise Integration Patterns via Camel Integration
- Logging a warning if you forget to start a Connection
- Message Transformation
- Mirrored Queues
- Flow Control
鉴于目前关于ActiveMQ5.0的文章比较少,故准备写一系列ActiveMQ的使用方面的文章。本篇先从安装开始。
安装
- 在http://activemq.apache.org/download.html 下载5.0.0发行包,解压到需要安装ActiveMQ的文件夹,记为/path/to/activemq。
- unix环境activemq文件夹需要执行权限,执行如下命令 chmod -R 755 /path/to/activemq
启动
- window环境运行/path/to/activemq/bin/activemq.bat
- unix环境运行/path/to/activemq/bin/activemq
测试
ActiveMQ默认使用的TCP连接端口是61616, 通过查看该端口的信息可以测试ActiveMQ是否成功启动
- window环境运行 netstat -an|find "61616"
- unix环境运行netstat -an|grep 61616
监控
ActiveMQ5.0版本默认启动时,启动了内置的jetty服务器,提供一个demo应用和用于监控ActiveMQ的admin应用。
admin:http://127.0.0.1:8161/admin/
demo:http://127.0.0.1:8161/demo/
点击demo应用中的“ Market data publisher ”,就会发一些测试的消息。转到admin页面的topics menu下面(queue和topic的区别见 http://andyao.iteye.com/blog/153173 ),可以看到消息在增长。
配置
ActiveMQ5.0的配置文件在/path/to/activemq/conf目录下面。主要配置文件为activemq.xml,具体的配置将在后续文章中详细说明。
评论
9 楼
grantbb
2008-01-11
不错,准备跟着这个好好学习了。加油
8 楼
andyao
2008-01-11
springide2.0.2支持spring2.5吗
我现在用annotation,所以基本不用springide
我现在用annotation,所以基本不用springide
7 楼
tewe2008
2008-01-10
我用你的配置和converter成功了:),但是springIDE还是有错误,不能代码提示。
springIDE2.02,spring2.5
配置:
我写的converter没有把pojo序列化到byte[]中就报错:
还有:http://activemq.apache.org/schema/core/activemq-core-5.0.0.xsd
这个和activemq5.0-core包里的spring-schemas中定义的并不一样!这样的话我的IDE就不能是实用本地的XSD吧?
springIDE2.02,spring2.5
配置:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:jms="http://www.springframework.org/schema/jms" xmlns:amq="http://activemq.org/config/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-2.5.xsd http://activemq.org/config/1.0 http://activemq.apache.org/schema/core/activemq-core-5.0.0.xsd">
我写的converter没有把pojo序列化到byte[]中就报错:
org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing; nested exception is javax.jms.JMSException: Object is not a primitive: com.model.Item@767851f0
还有:http://activemq.apache.org/schema/core/activemq-core-5.0.0.xsd
这个和activemq5.0-core包里的spring-schemas中定义的并不一样!这样的话我的IDE就不能是实用本地的XSD吧?
6 楼
andyao
2008-01-09
引用
你好啊,我现在正准备在项目中实用activemq,但是发现activemq5.0的XSD文件在springIDE中有错误,使的配置很麻烦!我用的是jvm内嵌式的,还有持久化时不能对自定义类型的对象进行保存,你碰到这些问题了吗?
你能讲清楚一点吗?
目前我们的project使用的就是ActiveMQ5.0, jvm embedder和单独的ActiveMQ5.0的服务器使用都没有问题。
目前使用的ActiveMQ5.0的XSD,没有错误
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:amq="http://activemq.org/config/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://activemq.org/config/1.0 http://activemq.apache.org/schema/core/activemq-core-5.0.0.xsd">
引用
还有持久化时不能对自定义类型的对象进行保存
这个问题也没有碰到过,你看是不是你的messageConverter有问题?你的消息类型是POJO吗?
我使用的MessageConverter如下
public class DefaultMessageConverter implements MessageConverter { /** * Logger for this class */ private static final Log log = LogFactory.getLog(DefaultMessageConverter.class); public Message toMessage(Object obj, Session session) throws JMSException { if (log.isDebugEnabled()) { log.debug("toMessage(Object, Session) - start"); } // check Type ActiveMQObjectMessage objMsg = (ActiveMQObjectMessage) session.createObjectMessage(); HashMap<String, byte[]> map = new HashMap<String, byte[]>(); try { // POJO must implements Seralizable ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(bos); oos.writeObject(obj); map.put("POJO", bos.toByteArray()); objMsg.setObjectProperty("Map", map); } catch (IOException e) { log.error("toMessage(Object, Session)", e); } return objMsg; } public Object fromMessage(Message msg) throws JMSException { if (log.isDebugEnabled()) { log.debug("fromMessage(Message) - start"); } if (msg instanceof ObjectMessage) { HashMap<String, byte[]> map = (HashMap<String, byte[]>) ((ObjectMessage) msg).getObjectProperty("Map"); try { // POJO must implements Seralizable ByteArrayInputStream bis = new ByteArrayInputStream(map.get("POJO")); ObjectInputStream ois = new ObjectInputStream(bis); Object returnObject = ois.readObject(); return returnObject; } catch (IOException e) { log.error("fromMessage(Message)", e); } catch (ClassNotFoundException e) { log.error("fromMessage(Message)", e); } return null; } else { throw new JMSException("Msg:[" + msg + "] is not Map"); } } }
5 楼
tewe2008
2008-01-09
你好啊,我现在正准备在项目中实用activemq,但是发现activemq5.0的XSD文件在springIDE中有错误,使的配置很麻烦!我用的是jvm内嵌式的,还有持久化时不能对自定义类型的对象进行保存,你碰到这些问题了吗?
4 楼
javachs
2008-01-08
andyao 写道
引用
这个东东是不是类似IBM的Mq一样的东东
可以这样说,都是实现了JMS规范.
但是IBM MQ收费,当然功能更强大。
ActiveMQ是开源的。
我喜欢ActiveMQ是开源的,一切好东西都要有开源的,要不然外国大厂商和会IBM mq的人牛的不行。
3 楼
andyao
2008-01-07
引用
这个东东是不是类似IBM的Mq一样的东东
可以这样说,都是实现了JMS规范.
但是IBM MQ收费,当然功能更强大。
ActiveMQ是开源的。
2 楼
javachs
2008-01-07
这个东东是不是类似IBM的Mq一样的东东
1 楼
xyh
2008-01-06
正想了解这个,尽快出下集吧,等不及了
发表评论
-
Spring Milestone Maven Repository地址
2009-05-11 10:52 7868使用maven又想试用spring 3.0 m3的朋友可以用s ... -
HiddenHttpMethodFilter:自动转换Http Method
2009-03-29 11:21 5494REST的核心之一就是提供统一接口,也就是说对所有的资源(UR ... -
ActiveMQ5.0实战三:使用Spring发送,消费topic和queue消息
2008-08-28 18:21 33120ActiveMQ5.0实战一: 安装配 ... -
The smallwig theory of optimization
2008-04-17 09:49 1379There are three kinds of optimi ... -
ElementType.LOCAL_VARIABLE目前基本没用
2008-04-07 18:30 3904jdk5.0引入Annotation语法,@Target中的E ... -
Memcached java client 2.01发布
2008-04-05 21:39 2381com.danga.MemCached 发布2.0.1包括许多 ... -
Struts2中使用Stream Result Type
2008-04-05 18:25 18105Stream result type是Struts2中比较有用 ... -
NotSerializableException: EnhancerByCGLIB
2008-04-03 12:23 4292使用Ibatis时,为了获得更好的性能,我们一般都会将enha ... -
Pointcut命名有可能导致错误
2008-02-28 19:16 4315使用Spring @AspectJ方式的AOP,代码@Aspe ... -
异常通知:面向方面的模型
2008-02-28 15:16 2174原文:http://dev2dev.bea.com ... -
Sping容器加载xsd文件时的问题
2008-01-31 17:56 6372今天遇到一个非常奇怪的spring容器问题,先看日志]-303 ... -
关于memcached client的选择
2008-01-10 15:29 13543Memcached(http://www.danga.com/ ... -
Java确实不适合于作为主要编程教学语言
2008-01-10 12:12 1649最近米国那边又在讨论这个话题, 孟岩也发了一篇帖子http:/ ... -
Spring 2.5Annotation使用基本类型和${}
2008-01-08 19:08 2746最近使用了Spring2.5 annotation风格的DI, ... -
ActiveMQ5.0实战二: 基本配置
2008-01-08 17:33 12453/** *作者:andyao,email:andyaoy@gm ... -
JMS消息类型模型
2008-01-04 18:12 9544/**作者:andyao,email:andyaoy@gmai ... -
Spring Annotation和XML风格的声明式事务
2008-01-04 14:02 5604/***作者:andyao,email:andyaoy@gma ... -
国际化异常消息
2007-12-21 14:26 3864/**作者:andyao,email:andyaoy@gmai ... -
Exception for Action
2007-12-17 16:31 1542原文:http://www.javaworld.com/ja ... -
有效的Java异常
2007-12-17 15:51 1532原文出处:http://dev2dev.b ...
相关推荐
ActiveMQ 5.0是该中间件的一个较早版本,但即便如此,它仍包含了大量关键功能和特性,对于初学者和专业人士都是一个有价值的起点。 首先,让我们深入了解Java消息服务(JMS)。JMS是一个为分布式环境设计的应用程序...
**标题:“ActiveMQ5.0 监视的JSP支持中文”** ActiveMQ是Apache软件基金会的一个开源项目,它是一个功能强大的消息中间件,广泛应用于分布式系统中的异步通信。在ActiveMQ 5.0版本中,对于中文支持的改进是一项...
ActiveMQ和Spring的整合是企业级应用中常见的一种技术组合,尤其在分布式系统和微服务架构中,消息队列(Message Broker)如ActiveMQ扮演着至关重要的角色。它能有效地实现系统间的异步通信,提高系统的可扩展性和...
标签:activemq-service-5.0.0.jar,activemq,service,5.0.0,jar包下载,依赖包
需要注意的是,在ActiveMQ 5.0版本中存在一个bug:采用AMQ Message Store,运行一个producer,两个consumer,并采用特定的配置文件时,可能会报出错误。这个bug已经被修正,预定在5.1.0版本上体现。 Broker ...
然而,在ActiveMQ 5.0版本中,存在一个已知的bug,可能导致消息无法恢复。官方文档表示该问题已在5.1.0版本中修复。 2. Broker Clusters: Broker集群则涉及到多个消息代理(brokers)的协作,以提供容错和负载...
然而,在ActiveMQ 5.0版本中,存在一个已知的bug,可能会导致消息恢复失败。官方文档指出,此问题已在5.1.0版本中得到修复。 2. **Broker Clusters** Broker Clusters 的目标是提供冗余和故障转移能力。在这种配置...
在ActiveMQ 5.0的二进制发布包中,包含了用于启动Broker的`activemq`脚本,用户可以直接执行此脚本来启动ActiveMQ服务,以便于管理和发送接收消息。 **JMS基础** Java消息服务(JMS)是Java平台中定义的一套标准...
它覆盖了Apache与TongWeb5.0的深度集成、SSL安全配置、OpenSSL证书生成、OpenLDAP的部署与管理,以及ActiveMQ的JAAS安全认证等多个方面,旨在帮助读者掌握关键技术点,提升系统整体性能与安全性。
#### 二、ActiveMQ安装与配置 ##### 2.1 安装环境要求 - **Java环境**: ActiveMQ的运行需要Java环境支持,建议使用JDK 5.0及以上版本。 - **下载与安装**: 下载最新版的ActiveMQ包,并根据操作系统选择相应的安装...
然而,在ActiveMQ 5.0版本中,存在一个已知的bug,即在AMQ Message Store配置下,长时间运行可能导致恢复失败的问题。官方文档表示此bug已在5.1.0版本中得到修复。 2. Broker Clusters: Broker Clusters主要用于...
- ActiveMQ 5.0及以上版本默认启动了一个内置的Jetty服务器,提供了用于监控和管理的Admin应用及示例应用。 - **Admin应用**:通过浏览器访问`http://127.0.0.1:8161/admin/` - **Demo应用**:通过浏览器访问`...
官方版本,亲测可用
官方版本,亲测可用
官方版本,亲测可用
Java面试宝典,内含一些面试常问的细节,涵盖javaSE,javaWeb,JVM,http协议,Linux命令,常用前端框架,Mysql,Oracle,SpringMVC,Spring,Mybatis,Shiro,Sturts2,Hibernate,Quartz,Redis,ActiveMQ,Dubbo,Nginx,...
MQ各个版本与java JDK各个版本和IBM jar包各个版本的混合测试结果。以及对不同通道SSL加密套件的支持。