将队列绑定到WebSphere 7中的EJB 3.0 MDB

时间:2011-06-01 17:26:25

标签: deployment queue websphere message-driven-bean zos

我正在编写或试图编写关于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代码没有注释。)此时,应用指向规范和队列,规范指向队列 - 腰带和吊带。当然,我认为应用程序因此了解队列。充满希望,我在队列中放了一条消息,然后......什么都没有。 onMessage事件应该使用System.out来记录消息。我看不到任何消息。

由于缺席,明确的文件显而易见。谷歌提供了大量的结果,但没有一个详细说明配置如何组合在一起。有很多关于ibm-ejb-jar-bnd.xmi的挥手,但文件的例子是神秘的,充满了不透明的数字,没有解释它们是如何生成的,或者它们与配置的其他部分有什么关系。 / p>

为了善良的缘故。我想要做的就是部署一个MDB,并在我将消息发送到队列时写下“Hello,world”。我正在使用vi和ant作为我的开发和构建工具。那里有人可以让我知道我错过了什么吗?

编辑:添加了“zos”标签。

2 个答案:

答案 0 :(得分:1)

我发现了问题。它特定于在z / OS上运行的WebSphere。要使激活规范在该环境中完全可用,必须启动控制区域附件(CRA)进程。我告诉WAS启动它,回收应用服务器,然后!我的MDB开始回复。

要通过WebSphere管理控制台启动CRA,请转到...

  • 应用程序服务器> [服务器名称]>通讯>消息> WebSphere MQ CRA设置

...并选中“启动CRA”框。点击OK,将其保存到主配置,并使CRA实际启动,关闭并备份应用服务器。 (这适用于WAS 7.0。)

感谢大家的时间和思想空间。

答案 1 :(得分:0)

快速浏览一下,看看这里有什么可以帮到你。

http://publib.boulder.ibm.com/infocenter/ieduasst/v1r1m0/topic/com.ibm.iea.wasfpejb/wasfpejb/6.1/DevelopmentTools/WASv61_EJB3FP_MDBLab.pdf

我在过去的一年里没有玩过这个,所以我无法立即发表评论,但我认为PDF可能对你有所帮助。

HTH

Manglu