Deployment 在WebSphere7中将队列绑定到EJB3.0MDB

Deployment 在WebSphere7中将队列绑定到EJB3.0MDB,deployment,queue,websphere,message-driven-bean,zos,Deployment,Queue,Websphere,Message Driven Bean,Zos,我正在编写或试图编写WebSphere7上Baby的第一个MDB。我几乎没有头发了,我把头发都拔了出来,想让它工作起来。看起来我已经把所有的事情都安排好了,但是当我把一条消息放到相关的队列中时,我没有得到任何响应 以下是EAR文件设置: simplemdb.ear META-INF Manifest.mf application.xml simplemdb.jar META-INF Manifest.mf

我正在编写或试图编写WebSphere7上Baby的第一个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激活规范。名称SimpleDBActivationSpec、JNDI名称jms/SimpleActivationSpec、目标jms/SimpleDBQueue
  • 定义一个WebSphere队列。名称SimpleMDBQueue,JNDI名称jms/SimpleMDBQueue,队列名称SIMPLE.MDB.Queue
  • 定义一个MQ队列,名称为SIMPLE.MDB.queue
  • 部署EAR文件。在部署期间,我被要求输入绑定信息。我选择激活规范,然后将目标资源JNDI名称和目标JNDI名称分别指向激活规范和队列
(MDB代码没有注释。)此时,应用程序指向规范和队列,规范指向队列-皮带和吊杆。当然,我认为应用程序因此知道队列。满怀希望,我在队列上留言,然后。。。没有什么。onMessage事件应该使用System.out来记录消息。我看不到消息

关于这一点的明确文件因其缺失而引人注目。谷歌给出了很多结果,但没有一个详细说明配置是如何组合在一起的。关于ibm-ejb-jar-bnd.xmi,有很多人在挥手致意,但该文件的示例很神秘,充满了不透明的数字,没有解释它们是如何生成的,或者它们与配置的其他部分是如何关联的

看在上帝的份上。我所要做的就是部署一个MDB,当我将消息放入队列时,让它写下“Hello,world”。我使用vi和ant作为我的开发和构建工具。有人能告诉我我错过了什么吗


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

快速查看一下,看看这里是否有什么可以帮助您的

我已经一年没有玩过这个了,所以我不能马上发表评论,但我想PDF可能会对你有所帮助


Manglu

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

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

  • 应用程序服务器>[服务器名称]>通信>消息传递>WebSphere MQ CRA设置
。。。并勾选“启动CRA”框。点击OK,将其保存到主配置,要使CRA真正启动,请关闭并备份应用服务器。(这是针对WAS 7.0的。)


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

我不是MDB专家,但您的actspec、队列和绑定配置步骤看起来很正确,所以我不确定出了什么问题。我将注意到,在检查Google时,ibm-ejb-jar-bnd.xmi用于EJB3之前的版本,而.xml用于EJB3。无论如何,这些文件是在部署步骤中为您创建/填充的,因此您不需要它们。希望对你有帮助…谢谢。据我所知,ibm-ejb-jar-bnd.xmi/xml文件提供了要使用的默认值。我应该能够通过管理控制台动态更改绑定。这样做并不能使应用程序正常工作=(另外,我只是尝试使用侦听器端口而不是激活规范。No go。WebSphere报告说,一切都部署得很好,但MDB仍然不会以任何方式响应放入队列。一项研究发现,如果MDB正确侦听,MQ队列将显示一个(或两个)连接。这也没有发生。啊!谢谢。我试着按照PDF指定,在ibm-ejb-jar.bnd.xml中编写激活规范。这有点帮助,因为它使我不必手动将激活规范与MDB关联。但是对实际的MDB行为没有影响。您好,很高兴看到您的问题得到了解决。我建议您请正确说明是否在z/OS上运行,因为它与其他平台不同。如果您在问题中没有指定windows/Unix,人们会认为它是windows/Unix。