[心缘地方]同学录
首页 | 功能说明 | 站长通知 | 最近更新 | 编码查看转换 | 代码下载 | 常见问题及讨论 | 《深入解析ASP核心技术》 | 王小鸭自动发工资条VBA版
登录系统:用户名: 密码: 如果要讨论问题,请先注册。

[备忘]JBoss中使用Message Driven Bean的郁闷经历

上一篇:[转]How to create a Queue/Topic in JBoss?
下一篇:[备忘]Seam中使用Message Driven Bean(MDB)

添加日期:2009/1/5 19:26:49 快速返回   返回列表 阅读4260次
default/deploy/ear/lib

default/deploy/lib/jbossmq.jar


后者默认是有的。


前者不放jbossmq.jar的话,MDB启动是没问题的,但是,代码里往queue发信的时候,取得的Factory是org.jboss.mq.SpyConnectionFactory,报ClassCastException,其实它是实现了javax.jms.ConnectionFactory接口的,但就是报这个错,应该是找不到这个类的原因。


如果前者也放一个jbossmq.jar,则服务器启动时,就报Expected a Queue ..,开始以为是Queue没有生效,后来折腾半天,其实还是ClassCastException的问题,定义的Queue是SpyQueue,也实现了javax.jms.Queue接口,但就是不认。往Queue发信的代码就没问题了。

总之两个地方冲突了。
------------------------------------- 

郁闷折腾了两天,终于找到原因了。

我把deploy/lib下所有jar包都解压了,好看看别的包里没有org.jboss.mq这个路径。

无意中,却发现,解压出的路径包括javax.jms,一定是某个包中有这个路径,一查,是jboss-j2ee.jar包。

 
也就是说,javax.jms下这些类已经有了,而我在deploy/ear/lib下又放了javax.jms.jar(我自己找的,只有javax.jms.*这些类),它们冲突啊,赶紧把后者删除,重启,OK啦,哈哈……

可能因为两个路径下是不同的classLoader……
------------------------------------
本来挺简单的东西,却折腾的要死要活的……
 

评论 COMMENTS
没有评论 No Comments.

添加评论 Add new comment.
昵称 Name:
评论内容 Comment:
验证码(不区分大小写)
Validation Code:
(not case sensitive)
看不清?点这里换一张!(Change it here!)
 
评论由管理员查看后才能显示。the comment will be showed after it is checked by admin.
CopyRight © 心缘地方 2005-2999. All Rights Reserved