Hi The reason I didn't see any calls to the target method annotated @PostConstruct was that it always threw an exception (since I wanted to try to catch that). When the target method annotated @PostConstruct does not throw an exception I see a call to the interceptors @PostConstruct method...
I was not however able to catch any exception thrown by the @PostConstruct method as you show in your example (I also had to remove the checked exception and set void as a return type in the interceptor method to be able to pass the verification) Did I misundertand you or is it not possible to catch exceptions thrown in the @PostConstruct in the same was as exceptions thrown from a business method? Regards Fredrik On Thu, Feb 6, 2014 at 12:07 PM, Romain Manni-Bucau <[email protected]>wrote: > not using interceptor spec AFAIK but constructors shouldn't throw an > exception, it should be in a @PostConstruct: > > @CatchMe > @Interceptor > public class Inter { > @PostConstruct > public Object post(final InvocationContext ic) throws Exception { > System.out.println(">>> ok"); > System.out.println(">>> ok"); > System.out.println(">>> ok"); > System.out.println(">>> ok"); > try { > return ic.proceed(); > } catch (Exception e) { > e.printStackTrace(); > return null; > } > } > } > > > @CatchMe > public class Foo { > @PostConstruct > public void Foo() { > throw new RuntimeException(); > } > > public void run() {} > } > > Romain Manni-Bucau > Twitter: @rmannibucau > Blog: http://rmannibucau.wordpress.com/ > LinkedIn: http://fr.linkedin.com/in/rmannibucau > Github: https://github.com/rmannibucau > > > > 2014-02-06 Lars-Fredrik Smedberg <[email protected]>: > > so there is no need to call ic.proceed either then? > > > > Is there any way to intercept the exceptions thrown from the > @PostConstruct > > method in the same way I can with business methods....? > > > > Regards > > Fredrik > > > > > > On Thu, Feb 6, 2014 at 11:59 AM, Romain Manni-Bucau < > [email protected]> > > wrote: > >> > >> after the bean construction so it will likely not work > >> Romain Manni-Bucau > >> Twitter: @rmannibucau > >> Blog: http://rmannibucau.wordpress.com/ > >> LinkedIn: http://fr.linkedin.com/in/rmannibucau > >> Github: https://github.com/rmannibucau > >> > >> > >> > >> 2014-02-06 Lars-Fredrik Smedberg <[email protected]>: > >> > Hi Romain > >> > > >> > Maybe I misunderstood something about the use of it... some questions: > >> > > >> > 1. When is the interceptor method called? Before the @PostConstruct > >> > method > >> > of the target bean I assume? > >> > 2. Do I need to call ic.proceed() for the target been method to be > >> > called? > >> > > >> > I'm looking for a way to intercept any runtime exceptions thrown by > the > >> > @PostContstruct method of the target bean. > >> > > >> > Regards > >> > Fredrik > >> > > >> > > >> > > >> > On Thu, Feb 6, 2014 at 11:50 AM, Romain Manni-Bucau > >> > <[email protected]> > >> > wrote: > >> >> > >> >> seems it works for me: > >> >> > >> >> @CatchMe > >> >> @Interceptor > >> >> public class Inter { > >> >> @PostConstruct > >> >> public void post(final InvocationContext ic) { > >> >> System.out.println(">>> ok"); > >> >> System.out.println(">>> ok"); > >> >> System.out.println(">>> ok"); > >> >> System.out.println(">>> ok"); > >> >> } > >> >> } > >> >> > >> >> > >> >> @InterceptorBinding > >> >> @Target(ElementType.TYPE) > >> >> @Retention(RetentionPolicy.RUNTIME) > >> >> public @interface CatchMe { > >> >> } > >> >> > >> >> > >> >> Romain Manni-Bucau > >> >> Twitter: @rmannibucau > >> >> Blog: http://rmannibucau.wordpress.com/ > >> >> LinkedIn: http://fr.linkedin.com/in/rmannibucau > >> >> Github: https://github.com/rmannibucau > >> >> > >> >> > >> >> > >> >> 2014-02-06 Lars-Fredrik Smedberg <[email protected]>: > >> >> > Hi Romain > >> >> > > >> >> > In the Interceptor I tried: > >> >> > > >> >> > @PostConstruct > >> >> > public void interceptPostConstructMethod(InvocationContext ctx) { > >> >> > ... > >> >> > } > >> >> > > >> >> > > >> >> > On Thu, Feb 6, 2014 at 11:08 AM, Romain Manni-Bucau > >> >> > <[email protected]> > >> >> > wrote: > >> >> >> > >> >> >> Hi > >> >> >> > >> >> >> what's the signature you used for your @PostContruct method? > >> >> >> Romain Manni-Bucau > >> >> >> Twitter: @rmannibucau > >> >> >> Blog: http://rmannibucau.wordpress.com/ > >> >> >> LinkedIn: http://fr.linkedin.com/in/rmannibucau > >> >> >> Github: https://github.com/rmannibucau > >> >> >> > >> >> >> > >> >> >> > >> >> >> 2014-02-06 Lars-Fredrik Smedberg <[email protected]>: > >> >> >> > Hi > >> >> >> > > >> >> >> > When looking at > >> >> >> > http://docs.oracle.com/javaee/6/tutorial/doc/gkigq.html > >> >> >> > it > >> >> >> > looks like I could create an Interceptor with a method annotated > >> >> >> > @PostConstruct which would get called when the annotated target > >> >> >> > class > >> >> >> > @PostConstruct annoted method is called. > >> >> >> > > >> >> >> > I cannot get this to work, however an Interceptor having a > method > >> >> >> > annotated > >> >> >> > @AroundInvoke works fine when calling business methods in the > >> >> >> > annotated > >> >> >> > target class. > >> >> >> > > >> >> >> > Can anyone point me in the right direction to get it to work (or > >> >> >> > maybe > >> >> >> > tell > >> >> >> > it is not supposed to work as I think it should :)) > >> >> >> > > >> >> >> > Regards > >> >> >> > Fredrik > >> >> >> > > >> >> >> > -- > >> >> >> > Med vänlig hälsning / Best regards > >> >> >> > > >> >> >> > Lars-Fredrik Smedberg > >> >> >> > > >> >> >> > STATEMENT OF CONFIDENTIALITY: > >> >> >> > The information contained in this electronic message and any > >> >> >> > attachments to this message are intended for the exclusive use > of > >> >> >> > the > >> >> >> > address(es) and may contain confidential or privileged > >> >> >> > information. > >> >> >> > If > >> >> >> > you are not the intended recipient, please notify Lars-Fredrik > >> >> >> > Smedberg > >> >> >> > immediately at [email protected], and destroy all copies of > this > >> >> >> > message and any attachments. > >> >> > > >> >> > > >> >> > > >> >> > > >> >> > -- > >> >> > Med vänlig hälsning / Best regards > >> >> > > >> >> > Lars-Fredrik Smedberg > >> >> > > >> >> > STATEMENT OF CONFIDENTIALITY: > >> >> > The information contained in this electronic message and any > >> >> > attachments to this message are intended for the exclusive use of > the > >> >> > address(es) and may contain confidential or privileged information. > >> >> > If > >> >> > you are not the intended recipient, please notify Lars-Fredrik > >> >> > Smedberg > >> >> > immediately at [email protected], and destroy all copies of this > >> >> > message and any attachments. > >> > > >> > > >> > > >> > > >> > -- > >> > Med vänlig hälsning / Best regards > >> > > >> > Lars-Fredrik Smedberg > >> > > >> > STATEMENT OF CONFIDENTIALITY: > >> > The information contained in this electronic message and any > >> > attachments to this message are intended for the exclusive use of the > >> > address(es) and may contain confidential or privileged information. If > >> > you are not the intended recipient, please notify Lars-Fredrik > Smedberg > >> > immediately at [email protected], and destroy all copies of this > >> > message and any attachments. > > > > > > > > > > -- > > Med vänlig hälsning / Best regards > > > > Lars-Fredrik Smedberg > > > > STATEMENT OF CONFIDENTIALITY: > > The information contained in this electronic message and any > > attachments to this message are intended for the exclusive use of the > > address(es) and may contain confidential or privileged information. If > > you are not the intended recipient, please notify Lars-Fredrik Smedberg > > immediately at [email protected], and destroy all copies of this > > message and any attachments. > -- Med vänlig hälsning / Best regards Lars-Fredrik Smedberg STATEMENT OF CONFIDENTIALITY: The information contained in this electronic message and any attachments to this message are intended for the exclusive use of the address(es) and may contain confidential or privileged information. If you are not the intended recipient, please notify Lars-Fredrik Smedberg immediately at [email protected], and destroy all copies of this message and any attachments.
