Keep care with this solution. You have all this injection stuff beacause the ejb-container creates this singleton instance, call's @PostConstruct and so on ...
If you register this instance by the MBeanServer as MBean and call later this instance via the MBeanServer, the call is invoked in the context of the MBeanServer without transaction, security context and so on.
You will "land" in the ejb-container during the first call to an injected ejb.
By the "old" @Service-anntoated MBean, the MBean-call was also in the context of the ejb-container.
We run in some problems by porting an application (from JBoss 4.3) with this solution.
E.g. in a MBean method we call multiple ejb's. Now has each ejb-call his own transaction, in the "old" version we had only one transaction for all calls. It's a litte difference ;-)