can you share a mvn project on github showing it? bwt i exected my code with openejb-core but this is mainly openwebbeans invocations 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]>: > I was not able to @PostConstruct annotate a interceptor method that had a > return type and threw a checked exception, I got the following exception at > startup > > @PostConstruct > public Object postConstructMethod(InvocationContext ctx) throws Exception { > > [ERROR ] @PostConstruct annotated method : postConstructMethod in class : > shb.rinf.util.CacheInterceptor must return void type > @PostConstruct annotated method : postConstructMethod in class : > shb.rinf.util.CacheInterceptor must return void type > [ERROR ] An error occured while starting application context path : > [/rsea] > > and when i just removed the return type > > @PostConstruct > public void postConstructMethod(InvocationContext ctx) throws Exception { > > [ERROR ] @PostConstruct annotated method : postConstructMethod in class : > shb.rinf.util.CacheInterceptor can not throw any checked exception > @PostConstruct annotated method : postConstructMethod in class : > shb.rinf.util.CacheInterceptor can not throw any checked exception > [ERROR ] An error occured while starting application context path : > [/rsea] > > .... > > My test does not run the code in the interceptor before the exception is > thrown in the target class @PostConstruct and therefor nothing is caught.... > > Did I miss out on something? > > Regards > Fredrik > > > > > On Thu, Feb 6, 2014 at 1:49 PM, Romain Manni-Bucau <[email protected]> > wrote: >> >> My code catches the exception of @PostConstruct method of the bean so >> i should be missing sthg >> 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 >> > >> > 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. > > > > > -- > 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.
