我正在编写或尝试编写 WebSphere 7 上的 Baby's First MDB。我几乎没有头发了,我已经全力以赴试图让事情正常工作。看来我已经正确设置了所有内容,但是当我将消息放入关联的队列时我没有得到任何响应。
这是 EAR 文件设置:
simplemdb.ear
META-INF
Manifest.mf
application.xml
simplemdb.jar
META-INF
Manifest.mf
ejb-jar.xml
com
[ classes go here ]
我找不到在 ejb-jar.xml 中定义队列的 JNDI 名称的任何语法,所以我改为:
- 定义 WebSphere 激活规范。名称 SimpleMDBActivationSpec,JNDI 名称 jms/SimpleActivationSpec,目标 jms/SimpleMDBQueue。
- 定义一个 WebSphere 队列。名称 SimpleMDBQueue,JNDI 名称 jms/SimpleMDBQueue,队列名称 SIMPLE.MDB.QUEUE。
- 定义一个 MQ 队列,命名为 SIMPLE.MDB.QUEUE。
- 部署 EAR 文件。在部署期间,我被要求输入绑定信息。我选择激活规范,然后将目标资源 JNDI 名称和目标 JNDI 名称分别指向激活规范和队列。
(MDB代码没有注解。)此时,app指向spec和queue,spec指向queue——belt和suspensers。自然地,我想应用程序因此知道队列。满怀希望,我在队列上放了一条消息,然后……什么也没有。onMessage 事件应该使用 System.out 来记录消息。我没有看到任何消息。
这方面的明确文件因缺席而引人注目。谷歌提供了很多结果,但没有一个详细说明配置如何组合在一起。有很多关于 ibm-ejb-jar-bnd.xmi 的建议,但该文件的示例是神秘的,充满了不透明的数字,没有解释它们是如何生成的,或者它们如何与配置的其他部分相关联。
看在上帝的份上。我要做的就是部署一个 MDB,并在我将消息放入队列时让它写“Hello, world”。我使用 vi 和 ant 作为我的开发和构建工具。那里的任何人都可以告诉我我缺少什么吗?
编辑:添加了“zos”标签。