2012-04-14 119 views
0

我不知道如何从MySatefulSessionBean发送消息(javax.jms.Message)到MySingletonBean然后MyMessageDrivenBean。我正在使用Netbeans,所以我可以右键点击Singleton Bean的源代码并选择发送JMS消息如何从会话bean将消息发送到消息驱动Bean间接

但是,这将使在MySingletonBean生成的消息被发送到MyMessageDrivenBean当我真正想要做的是消息从MySatefulSessionBean转发到MyMessageDrivenBean

即,而不是创建在MySingleTonBean新的消息并发送它MyMessageDrivenBean进行处理,我想要MySatefulSessionBean实例化以通过MyMessageDrivenBean的的onMessage(消息MSG)方法来处理该消息。

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

您能否告诉我如何使用它?提前

回答

1

实际上并没有在有状态会话bean中准备消息,但只准备实际的有效负载。

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

+0

谢谢迈克,听起来很好的计划;我会看看,如果我能意识到你为什么建议! – Abraham 2012-04-15 15:55:53

+1

我的意思是“什么”,对于错字感到抱歉。 – Abraham 2012-04-15 17:40:21

1

谢谢,你是不是应该在其他EJB则消息驱动Bean接收JMS消息。所以你的MySingletonBean不应该接收JMS消息。如果你设法实现它,你会得到各种疯狂的错误(因为EJB对象生命周期规则)。

所以重新考虑你的建筑。

+0

感谢您的回答PiotrKochański。但事情是,我没有收到MySingletonBean中的消息。我只是使用它来为从MySatefulSessionBean发送的ObjectMessage添加时间戳,然后将其转发给MyMessageDrivenBean。 – Abraham 2012-04-14 21:53:57

+0

“转发信息”是什么意思?如果没有在MySingletonBean中收到消息,这是可能的 – 2012-04-14 22:10:58

+0

是的,这也让我感到困惑。但我给出的规范是,每个独立客户端应该使用有状态会话Bean(MySatefulSessionBean)将消息发送到聊天管理器(MySingletonBean)。然后,聊天管理器向MyMessageDrivenBean处理的队列发送消息。
独立客户端不会发送javax.jms.Message,但会发送一些Serializable对象,这就是为什么我要将ObjectMessage发送到MyMessageDrivenBean。 – Abraham 2012-04-14 22:18:13