The testzero method is not invoked because the interceptor method does not contain the ctx.proceed(); statement. Due to this reason, the next method in the chain, that is testzero business method is never invoked.
The interceptor method can throw Exception. That is can can throw any checked Exception and run-time Exception. Also, If the interceptor method can throw only the Exception which are defined in the business method.
This mean that the interceptor method can be without throws clause, if the exceptions are handles internally in the method.
Your example is running perfectly. I think OC4J container is Java EE compliant with some extra facilities.