This week's book giveaway is in the General Computing forum. We're giving away four copies of Arduino in Action and have Martin Evans, Joshua Noble, and Jordan Hochenbaum on-line! See this thread for details.
Your thoughts are fine but what about the details? How would it know to run?
You can create an EJB that implements TimedObject and then have something call it to setup the timer.
Or you could create a cronjob. This cronjob could be the application itself. Or a client that calls an EJB at the correct interval. Or the EJB could be a message driven bean and a cronjob or something else could send a message at the correct intervals.