The Interceptor code is complete as posted.
The EJB:
@javax.ejb.Stateless(name = "ejb/MyService")
public class MyServiceImpl implements MyService {
@Override
@javax.ejb.TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
@javax.interceptor.Interceptors({CallMonitoringInterceptor.class})
public Object service(String param1) throws Exception {
// ...
}
}
and
@javax.ejb.Local
public interface MyService {
Object service(String param1) throws Exception;
}