java - PreProcessInterceptor do not intercept some of my JAX-RS Resource services -


the pom.xml :

<dependency>     <groupid>org.jboss.resteasy</groupid>     <artifactid>jaxrs-api</artifactid>     <version>2.3.1.ga</version>     <scope>compile</scope> </dependency> <dependency>     <groupid>org.jboss.resteasy</groupid>     <artifactid>resteasy-jaxrs</artifactid>     <version>2.3.1.ga</version> </dependency> 

the interceptor class :

@provider @serverinterceptor @securityprecedence public class authorizationinterceptor implements preprocessinterceptor {     @override     public serverresponse preprocess(httprequest request, resourcemethod method) throws failure, webapplicationexception {         // initalizations     } } 

the web service not intercepted :

@path("/poi") @consumes({"application/xml", "application/json", "application/octet-stream"}) @produces({"application/json", "text/json", "application/xml"}) @restricted public class poiresource extends secureresource<poi> {      @inject     public poiressource(poidao pois) {         super(pois);     }      @get     @path("/ping")     @unrestricted     public response ping() {         string date = new date().tostring();         if (log.isinfoenabled()) log.info(string.format("ping %s",date));             return response.ok(date).build();     } } 

the web service intercepted :

@path("/access") @consumes({"application/xml", "application/json", "application/octet-stream",  "application/x-www-form-urlencoded"}) @produces({"application/json", "text/json", "application/xml"}) @restricted public class accessresource extends secureresource<access> {      @inject     public accessresource(accessdao accessdao) {         super(accessdao);     }      @get     @path("/ping")     @unrestricted     public response ping() {         string date = new date().tostring();         if (log.isinfoenabled()) log.info(string.format("ping %s",date));             return response.ok(date).build();     } } 

i exception when call ping service on poiresource :

2013-05-03 18:34:09.973 [http-9080-3] error c.c.a.r.p.exception.exceptionmapper -  com.google.inject.provisionexception: guice provision errors:  1) error injecting constructor, java.lang.nullpointerexception @ com.connecthings.adtag.common.dao.poidao.<init>(poidao.java:69) while locating com.connecthings.adtag.common.dao.poidao parameter 0 @ com.connecthings.adtag.poi.rest.poiressource.<init>(poiressource.java:98) while locating com.connecthings.adtag.poi.rest.poiressource  1 error     @ com.google.inject.internal.injectorimpl$4.get(injectorimpl.java:987) ~[guice-3.0.jar:na]     @ com.connecthings.adtag.common.inject.configurableresteasyguicelistener$1.createresource(configurableresteasyguicelistener.java:104) ~[common-inject-4.0.0-snapshot.jar:na]     @ org.jboss.resteasy.core.resourcemethod.invoke(resourcemethod.java:210) ~[resteasy-jaxrs-2.3.1.ga.jar:na]     @ org.jboss.resteasy.core.synchronousdispatcher.getresponse(synchronousdispatcher.java:525) [resteasy-jaxrs-2.3.1.ga.jar:na]     @ org.jboss.resteasy.core.synchronousdispatcher.invoke(synchronousdispatcher.java:502) [resteasy-jaxrs-2.3.1.ga.jar:na]     @ org.jboss.resteasy.core.synchronousdispatcher.invoke(synchronousdispatcher.java:119) [resteasy-jaxrs-2.3.1.ga.jar:na]     @ org.jboss.resteasy.plugins.server.servlet.servletcontainerdispatcher.service(servletcontainerdispatcher.java:208) [resteasy-jaxrs-2.3.1.ga.jar:na]     @ org.jboss.resteasy.plugins.server.servlet.httpservletdispatcher.service(httpservletdispatcher.java:55) [resteasy-jaxrs-2.3.1.ga.jar:na]     @ org.jboss.resteasy.plugins.server.servlet.httpservletdispatcher.service(httpservletdispatcher.java:50) [resteasy-jaxrs-2.3.1.ga.jar:na]     @ javax.servlet.http.httpservlet.service(httpservlet.java:717) [servlet-api.jar:na]     @ com.google.inject.servlet.servletdefinition.doservice(servletdefinition.java:263) [guice-servlet-3.0.jar:na]     @ com.google.inject.servlet.servletdefinition.service(servletdefinition.java:178) [guice-servlet-3.0.jar:na]     @ com.google.inject.servlet.managedservletpipeline.service(managedservletpipeline.java:91) [guice-servlet-3.0.jar:na]     @ com.google.inject.servlet.filterchaininvocation.dofilter(filterchaininvocation.java:62) [guice-servlet-3.0.jar:na]     @ com.google.inject.servlet.managedfilterpipeline.dispatch(managedfilterpipeline.java:118) [guice-servlet-3.0.jar:na]     @ com.google.inject.servlet.guicefilter.dofilter(guicefilter.java:113) [guice-servlet-3.0.jar:na]     @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:235) [catalina.jar:6.0.35]     @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) [catalina.jar:6.0.35]     @ org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:233) [catalina.jar:6.0.35]     @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:191) [catalina.jar:6.0.35]     @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:127) [catalina.jar:6.0.35]     @ org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:102) [catalina.jar:6.0.35]     @ org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:109) [catalina.jar:6.0.35]     @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:293) [catalina.jar:6.0.35]     @ org.apache.coyote.http11.http11processor.process(http11processor.java:859) [tomcat-coyote.jar:6.0.35]     @ org.apache.coyote.http11.http11protocol$http11connectionhandler.process(http11protocol.java:602) [tomcat-coyote.jar:6.0.35]     @ org.apache.tomcat.util.net.jioendpoint$worker.run(jioendpoint.java:489) [tomcat-coyote.jar:6.0.35]     @ java.lang.thread.run(thread.java:679) [na:1.6.0_27] caused by: java.lang.nullpointerexception: null     @ java.util.concurrent.concurrenthashmap.get(concurrenthashmap.java:796) ~[na:1.6.0_27]     @ com.mongodb.mongo.getdb(mongo.java:362) ~[mongo-java-driver-2.10.1.jar:na]     @ com.google.code.morphia.datastoreimpl.<init>(datastoreimpl.java:77) ~[morphia-0.99.jar:na]     @ com.google.code.morphia.datastoreimpl.<init>(datastoreimpl.java:88) ~[morphia-0.99.jar:na]     @ com.connecthings.adtag.model.dao.unsecuregenericdao.getds(unsecuregenericdao.java:74) ~[common-persistence-4.0.0-snapshot.jar:na]     @ com.connecthings.adtag.model.dao.unsecuregenericdao.getcollection(unsecuregenericdao.java:112) ~[common-persistence-4.0.0-snapshot.jar:na]     @ com.connecthings.adtag.common.dao.poidao.<init>(poidao.java:73) ~[common-dao-4.0.0-snapshot.jar:na]     @ com.connecthings.adtag.common.dao.poidao$$fastclassbyguice$$3bbdc31e.newinstance(<generated>) ~[guice-3.0.jar:na]     @ com.google.inject.internal.cglib.reflect.$fastconstructor.newinstance(fastconstructor.java:40) ~[guice-3.0.jar:na]     @ com.google.inject.internal.defaultconstructionproxyfactory$1.newinstance(defaultconstructionproxyfactory.java:60) ~[guice-3.0.jar:na]     @ com.google.inject.internal.constructorinjector.construct(constructorinjector.java:85) ~[guice-3.0.jar:na]     @ com.google.inject.internal.constructorbindingimpl$factory.get(constructorbindingimpl.java:254) ~[guice-3.0.jar:na]     @ com.google.inject.internal.singleparameterinjector.inject(singleparameterinjector.java:38) ~[guice-3.0.jar:na]     @ com.google.inject.internal.singleparameterinjector.getall(singleparameterinjector.java:62) ~[guice-3.0.jar:na]     @ com.google.inject.internal.constructorinjector.construct(constructorinjector.java:84) ~[guice-3.0.jar:na]     @ com.google.inject.internal.constructorbindingimpl$factory.get(constructorbindingimpl.java:254) ~[guice-3.0.jar:na]     @ com.google.inject.internal.injectorimpl$4$1.call(injectorimpl.java:978) ~[guice-3.0.jar:na]     @ com.google.inject.internal.injectorimpl.callincontext(injectorimpl.java:1024) ~[guice-3.0.jar:na]     @ com.google.inject.internal.injectorimpl$4.get(injectorimpl.java:974) ~[guice-3.0.jar:na]     ... 27 common frames omitted 

i can't find out why ping method of accessresource intercepted , ping method of poiresource not... exception thrown because poi dao need object initialized in interceptor method instanciation.

if has clue me, lot. thanks!

your exception suggest issue come constructor of poidao prevent poiresource build.

in resteasy interceptor method called after resource instanciation , before resource method call.

as resource fail instanciate, interceptor never called.


Comments

Popular posts from this blog

php - Why I am getting the Error "Commands out of sync; you can't run this command now" -

linux - Does gcc have any options to add version info in ELF binary file? -

java - Are there any classes that implement javax.persistence.Parameter<T>? -