使用mdb作为接缝组件时遇到问题。在豆子里我注入了一些其他的缝合剂。
问题是当服务器在崩溃后重新启动并且部署了mdb时,它开始读取消息但是接缝尚未初始化并且我得到了一个异常(如上所列)。如果我启动服务器,队列为空,并在服务器启动后将消息提交到队列,则它正常工作。
是否有可能在服务器启动时停止或延迟发送消息并仅在接缝完全功能时才开始发送消息?
我在豆子上尝试了@Depends antotatin但是取得了成功
我的环境: jboss5.1 GA 接缝2.2.0 GA jboss messaging 1.4
任何帮助都会被激活
启动时的错误:
11:24:20,477 ERROR [TxPolicy] javax.ejb.EJBTransactionRolledbackException:java.lang.IllegalStateException:尝试在初始化应用程序之外调用Seam组件
11:24:30,483 ERROR [TxPolicy] javax.ejb.EJBException:无法获取池信号量,strictTimeout = 10000
答案 0 :(得分:1)
找到解决方案......我正在尝试使用错误的名称pattrn @Depends
添加此注释:
@Depends({“jboss.web.deployment:war = / myappname”})
其中myappname是应用程序warfile的名称。这将延迟MDB的初始化,直到Seam在战争部署期间完成初始化之后。
希望这有助于某人