Hmm... and now you're back where you started, aren't you?
This is a pretty annoying problem. Is there a working example of doing this within an EJB?
Is the following solution possible?
| @Stateless
| @Local
| public class A {
|
| @EJB
| B b;
|
| /**
| * this method is the one that is invoked by the 'user'
| **/
| public void someBusinessMethodThatHasToCreateATimer(...) {
| ...
| b.startTimer();
| }
|
|
| /**
| * this method will do the timeout job
| **/
| public void handleTimeout(Timer timer) {
| ...
| }
|
| }
|
|
| /**
| * this is a wrapper class to get a new transaction that only has to
| * deal with one data source in its own transaction.
| **/
| @Stateless
| @Local
| public class B {
|
| @Resource
| EJBContext ejbContext;
|
| @EJB
| A a;
|
| /**
| * this method is invoked by A. the result shall be
| * a created and persisted timer.
| **/
| public void startTimer() {
| ejbContext.getTimerService().createTimer(...);
| }
|
| /**
| * handles the timeout and will not do anything more
| * than just call the handleTimeout in A.
| **/
| @Timeout
| public void timeout(Timer timer) {
| a.handleTimeout(timer);
| }
|
| }
|
|
This is not a nice solution using a circular reference, but is there any other way get
around this problem without reconfiguring JBoss?
Cheers
/Oskar
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4139492#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...