I have a problem when using a mdb as a seam component. In the bean I inject some other seam somponents.
The problem is that when the server restart after a crash and the mdb is deployed it starts reading the messages but seam is not initialized yet and I got an exception(listed above). If i start the server whith the queues empty and submit a message to queue after the server start it is working ok.
Is there a posibility to stop or delay the sending off messages on server startup and start sending them only when seam is fully funcional?
I tried the @Depends antotatin on the bean but withowt success
my environment : jboss5.1 GA seam 2.2.0 GA jboss messaging 1.4
Any help would be appreceated
the error on startup :
11:24:20,477 ERROR [TxPolicy] javax.ejb.EJBTransactionRolledbackException: java.lang.IllegalStateException: Attempted to invoke a Seam com开发者_JS百科ponent outside an initialized application
11:24:30,483 ERROR [TxPolicy] javax.ejb.EJBException: Failed to acquire the pool semaphore, strictTimeout=10000
Find the solution...I was trying with the wrong name pattrn with @Depends
Add this annotation:
@Depends( {"jboss.web.deployment:war=/myappname"} )
Where myappname is the name of your app's warfile. This will delay the initialization of the MDB until after Seam has finished initializing during the war deployment.
Hope this helps someone
精彩评论