如何间接地将Message从Session bean发送到MessageDrivenBean

时间:2012-04-14 21:19:51

标签: ejb jms

我想知道如何将消息(javax.jms.Message)从 MySatefulSessionBean 发送到 MySingletonBean ,然后再发送到 MyMessageDrivenBean 即可。我正在使用Netbeans,因此我可以右键单击> 的源代码,然后选择发送JMS消息

但这会使 MySingletonBean 中生成的消息发送到 MyMessageDrivenBean ,而我实际想要做的是从转发消息MySatefulSessionBean MyMessageDrivenBean

即不是在MySingleTonBean中创建新消息并将其发送到MyMessageDrivenBean进行处理,我希望实例化的消息 MySatefulSessionBean 由MyMessageDrivenBean的 onMessage 处理(消息消息) ) 方法。

由于个人原因,我无法使MySatefulSessionBean直接与发送消息对话MyMessageDrivenBean;所以Message应该间接地转到MyMessageDrivenBean

你能告诉我如何做到这一点吗?

提前致谢

2 个答案:

答案 0 :(得分:1)

除了Message Driven Beans之外,您不应该在EJB中接收JMS消息。所以你的MySingletonBean不应该收到JMS消息。如果你设法以某种方式实现它,你会得到各种疯狂的错误(因为EJB对象生命周期规则)。

重新考虑你的架构。

答案 1 :(得分:1)

实际上不要在有状态会话bean中准备消息,而只准备实际的有效负载。

使用此有效内容作为方法参数调用您的单例,然后将JMS消息创建保留为单例的内部详细信息。