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
Post a Comment