地狱男爵之博客无限
BlogJava
首页
新随笔
联系
聚合
管理
posts - 33, comments - 70, trackbacks - 0
ActiveMQ4.1 +Spring2.0的POJO JMS方案 扩展,以更加实用(基于ss).二
一:续一,说明一的可使用性。
<
amq:queue
id
="destination.report"
physicalName
="active.jms.report"
/>
<
amq:queue
id
="destination.point"
physicalName
="active.jms.point"
/>
queue : 队列的名字 for 制造者.
感觉
org.springframework.jms.listener.DefaultMessageListenerContainer 做的不好,如果destination property能做一个可包含多个队列,并且有选择性的messageListener就好了,这样就避免下面的监听的尴尬了。呵呵
<!--
listener container,MDP无需实现接口
-->
<
bean
id
="fluxPerhourListenerContainer"
class
="org.springframework.jms.listener.DefaultMessageListenerContainer"
>
<
property
name
="connectionFactory"
ref
="jmsConnectionFactory"
/>
<
property
name
="destination"
ref
="destination.fluxPerhour"
/>
<
property
name
="messageListener"
ref
="messageListener"
/>
</
bean
>
<
bean
id
="fluxPerDayListenerContainer"
class
="org.springframework.jms.listener.DefaultMessageListenerContainer"
>
<
property
name
="connectionFactory"
ref
="jmsConnectionFactory"
/>
<
property
name
="destination"
ref
="destination.fluxPerday"
/>
<
property
name
="messageListener"
ref
="messageListener"
/>
</
bean
>
<
bean
id
="reportPerdayProducer"
class
="com.jms.ReportPerdayProducer"
>
<
property
name
="template"
ref
="jmsTemplate"
/>
<
property
name
="destination"
ref
="destination.report"
/>
</
bean
>
<
bean
id
="pointProducer"
class
="com.jms.PointProducer"
>
<
property
name
="template"
ref
="jmsTemplate"
/>
<
property
name
="destination"
ref
="destination.point"
/>
</
bean
>
producer不能重用,因为send到不同destination,所有没办法重用。
如果能对producer做一个默认统一的封装就好了. 但是DefaultProducer.那么应该注意队列线程安全方面,目前没有什么好的想法,就采用通用一些的办法,不过xml和代码稍多一些.
然后就用到 前面文章一 里面的内容了,非常简便。
<!--
Message Driven POJO (MDP)
-->
<
bean
id
="messageListener"
class
="org.springframework.jms.listener.adapter.MessageListenerAdapter"
>
<!--
may be other method
-->
<
constructor-arg
>
<
bean
class
="com..jms.MessageConsumerAdapter"
>
<!--业务接口/业务门面-->
<
property
name
="transfersManager"
ref
="transfersManager"
/>
</
bean
>
</
constructor-arg
>
<!--
may be other method
-->
<
property
name
="defaultListenerMethod"
value
="receive"
/>
<!--
custom MessageConverter define
-->
<
property
name
="messageConverter"
ref
="messageConverter"
/>
</
bean
>
<!--
Holder Message converter
-->
<
bean
id
="messageConverter"
class
="com.jms.CoverterHolder"
>
<
property
name
="defaultMessageConverter"
>
<
bean
class
="com.jms.DefaultMessageConverter"
/>
</
property
>
</
bean
>
<!--
Spring JmsTemplate config
-->
<
bean
id
="jmsTemplate"
class
="org.springframework.jms.core.JmsTemplate"
>
<
property
name
="connectionFactory"
>
<!--
lets wrap in a pool to avoid creating a connection per send
-->
<
bean
class
="org.springframework.jms.connection.SingleConnectionFactory"
>
<
property
name
="targetConnectionFactory"
ref
="jmsConnectionFactory"
/>
</
bean
>
</
property
>
<
property
name
="messageConverter"
ref
="messageConverter"
/>
</
bean
>
二.单元测试有时加载 activemq的问题
1.这个可能和spring版本有关系,请采用比较稳定的版本。例如apache-activemq官方包里面提供的.
2.选择 xml解析的问题,例如
public
abstract
class
SpringManagerTestCase
extends
AbstractTransactionalDataSourceSpringContextTests
{
public
SpringManagerTestCase()
{
System.setProperty(
"
javax.xml.parsers.DocumentBuilderFactory
"
,
"
org.apache.xerces.jaxp.DocumentBuilderFactoryImpl
"
);
System.setProperty(
"
javax.xml.parsers.SAXParserFactory
"
,
"
org.apache.xerces.jaxp.SAXParserFactoryImpl
"
);
System.setProperty(
"
javax.xml.transform.TransformerFactory
"
,
"
org.apache.xalan.processor.TransformerFactoryImpl
"
);
setDependencyCheck(
false
);
setDefaultRollback(
false
);
}
/** */
/**
* 配置Spring的配置文件的方法。
*
@see
org.springframework.test.AbstractDependencyInjectionSpringContextTests#getConfigLocations()
*/
protected
String[] getConfigLocations()
{
return
new
String[]
{
"
classpath:applicationContext-activemq-embedded.xml
"
}
;
}
}
三.为特殊的应用服务器,如resin ,也要选择特定的xml解析器
在web.xml中配置增加
<
web-app
>
<!--
In order to be able to compatiable with Resin 2.1.x and 3.0.x,
both XML and XSLT have to be replaced.
If only xalan is included, Resin 2.1.x will fail but not 3.0.x.
Therefore the best way is to use the compatiable version of the
XML parser ans XSLT.
- Please refere to the following link for more detailed information.
- http://www.caucho.com/resin-3.0/xml/jaxp.xtp
-->
<!--
xml
-->
<
system-property
javax.xml.parsers.DocumentBuilderFactory
=
"org.apache.xerces.jaxp.DocumentBuilderFactoryImpl"
/>
<
system-property
javax.xml.parsers.SAXParserFactory
=
"org.apache.xerces.jaxp.SAXParserFactoryImpl"
/>
<!--
xslt
-->
<
system-property
javax.xml.transform.TransformerFactory
=
"org.apache.xalan.processor.TransformerFactoryImpl"
/>
</
web-app
>
以上的以全部在实施中测试通过并且运行。大家可以方向使用和理解。如有疑问,相互交流.
posted on 2007-04-05 16:55
地狱男爵(hellboys)
阅读(2813)
评论(0)
编辑
收藏
所属分类:
编程语言(c/c++ java python sql ......)
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
优化MySQL数据库性能的八种方法
ActiveMQ4.1 +Spring2.0的POJO JMS方案 扩展,以更加实用(基于ss).二
ActiveMQ4.1 +Spring2.0的POJO JMS方案 扩展,以更加实用(基于ss)
compass 中使用annatation 简化配置
Compass - springside 中的应用
HTMLParser属性解析
使用Lucene建立自己的搜索引擎初步(转)
<
2007年4月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
常用链接
我的随笔
我的评论
我的参与
最新评论
随笔分类
bash
vim(1)
系统综合(12)
编程语言(c/c++ java python sql ......)(7)
随笔(6)
随笔档案
2010年11月 (1)
2009年3月 (2)
2008年12月 (1)
2008年11月 (1)
2008年6月 (1)
2007年12月 (1)
2007年11月 (1)
2007年4月 (2)
2007年3月 (1)
2006年11月 (1)
2006年10月 (1)
2006年9月 (2)
2006年8月 (1)
2006年7月 (2)
2006年6月 (6)
2006年5月 (3)
2006年4月 (5)
2006年3月 (1)
文章档案
2005年12月 (1)
相册
SARA--以后LP的标准?
恍惚的美丽(2007年的五一)
连接
差沙
我以前blog地址
聪明的猪(cleverpig)
最新随笔
1. Open MacVim tabs from command-line
2. 优化MySQL数据库性能的八种方法
3. Hadoop分布式文件系统(HDFS)的安全隐患
4. sssh v2.0 - 快速 ssh 登陆脚本
5. mod_python在 RHEL/CentOs 64 位编译上的问题
6. 我想应聘中国男子国家足球队主教练一职
7. Android中文文档v0.1 beta低调发布,期待更多同学来参加review
8. 欢迎访问Android中国
9. ActiveMQ4.1 +Spring2.0的POJO JMS方案 扩展,以更加实用(基于ss).二
10. ActiveMQ4.1 +Spring2.0的POJO JMS方案 扩展,以更加实用(基于ss)
搜索
最新评论
1. re: Mysql 集群简介和配置[未登录]
@dustin
动不动就说不稳定,人家岛国的有个很大很大的社交网站就是这么搞的。你有啥子证据说不稳定,服了你。
--菜鸟
2. re: 约瑟夫环算法(循环链表解决)
评论内容较长,点击标题查看
--527055685@qq.com
3. re: 约瑟夫环算法(循环链表解决)[未登录]
@huchuhan
看不懂
!
--Sky
4. re: Mysql 集群简介和配置
评论内容较长,点击标题查看
--tmeper
5. re: 约瑟夫环算法(循环链表解决)
哥们啥是链表?
--huchuhan
阅读排行榜
1. Mysql 集群简介和配置(61948)
2. 约瑟夫环算法(循环链表解决)(13318)
3. 妙解网络多台dhcp引起的IP冲突 (5862)
4. Compass - springside 中的应用(5403)
5. mod_python在 RHEL/CentOs 64 位编译上的问题(3637)
评论排行榜
1. 约瑟夫环算法(循环链表解决)(19)
2. Compass - springside 中的应用(18)
3. Mysql 集群简介和配置(7)
4. 不要一辈子靠技术生存(7)
5. 我想应聘中国男子国家足球队主教练一职(5)