the class gsonmessagebodyhandler
abstract class implements messagebodyreader<t>
, , has no annotations. then, method subclassed class called jsonmessagebodyhandler
. jsonmessagebodyhandler
annotated @producer
, @consumes(mediatype.application_json)
.
when deploy project unobfuscated, works fine. when obfuscate, though tell proguard not obfuscate gsonmessagebodyhandler
, jsonmessagebodyhandler
, jersey reason insists on attempting instantiate gsonmessagebodyhandler
provider, , failing because abstract. cannot figure causing jersey attempt load abstract class if obfuscated. can help?
jersey version 1.17.
the relevant sections of startup logs given below:
2013-05-05 01:08:29.363 [localhost-startstop-1] error c.s.j.c.s.component.providerfactory - provider class, class com.rest.common.gsonmessagebodyhandler, not instantiated. processing continue class not utilized java.lang.instantiationexception: null @ sun.reflect.instantiationexceptionconstructoraccessorimpl.newinstance(instantiationexceptionconstructoraccessorimpl.java:30) ~[na:1.6.0_35] @ java.lang.reflect.constructor.newinstance(constructor.java:513) ~[na:1.6.0_35] @ java.lang.class.newinstance0(class.java:355) ~[na:1.6.0_35] @ java.lang.class.newinstance(class.java:308) ~[na:1.6.0_35] @ com.sun.jersey.core.spi.component.componentconstructor._getinstance(componentconstructor.java:192) ~[jersey-core-1.17.jar:1.17] @ com.sun.jersey.core.spi.component.componentconstructor.getinstance(componentconstructor.java:179) ~[jersey-core-1.17.jar:1.17] @ com.sun.jersey.core.spi.component.providerfactory.__getcomponentprovider(providerfactory.java:166) [jersey-core-1.17.jar:1.17] @ com.sun.jersey.core.spi.component.providerfactory._getcomponentprovider(providerfactory.java:159) [jersey-core-1.17.jar:1.17] @ com.sun.jersey.core.spi.component.providerfactory.getcomponentprovider(providerfactory.java:153) [jersey-core-1.17.jar:1.17] @ com.sun.jersey.core.spi.component.providerservices.getcomponent(providerservices.java:251) [jersey-core-1.17.jar:1.17] @ com.sun.jersey.core.spi.component.providerservices.getproviders(providerservices.java:148) [jersey-core-1.17.jar:1.17] @ com.sun.jersey.core.spi.factory.messagebodyfactory.initwriters(messagebodyfactory.java:206) [jersey-core-1.17.jar:1.17] @ com.sun.jersey.core.spi.factory.messagebodyfactory.init(messagebodyfactory.java:163) [jersey-core-1.17.jar:1.17] @ com.sun.jersey.server.impl.application.webapplicationimpl._initiate(webapplicationimpl.java:1310) [jersey-server-1.17.jar:1.17] @ com.sun.jersey.server.impl.application.webapplicationimpl.access$700(webapplicationimpl.java:168) [jersey-server-1.17.jar:1.17] @ com.sun.jersey.server.impl.application.webapplicationimpl$13.f(webapplicationimpl.java:774) [jersey-server-1.17.jar:1.17] @ com.sun.jersey.server.impl.application.webapplicationimpl$13.f(webapplicationimpl.java:770) [jersey-server-1.17.jar:1.17] @ com.sun.jersey.spi.inject.errors.processwitherrors(errors.java:193) [jersey-core-1.17.jar:1.17] @ com.sun.jersey.server.impl.application.webapplicationimpl.initiate(webapplicationimpl.java:770) [jersey-server-1.17.jar:1.17] @ com.sun.jersey.server.impl.application.webapplicationimpl.initiate(webapplicationimpl.java:765) [jersey-server-1.17.jar:1.17] @ com.sun.jersey.spi.container.servlet.servletcontainer.initiate(servletcontainer.java:489) [jersey-servlet-1.17.jar:1.17] @ com.sun.jersey.spi.container.servlet.servletcontainer$internalwebcomponent.initiate(servletcontainer.java:319) [jersey-servlet-1.17.jar:1.17] @ com.sun.jersey.spi.container.servlet.webcomponent.load(webcomponent.java:605) [jersey-servlet-1.17.jar:1.17] @ com.sun.jersey.spi.container.servlet.webcomponent.init(webcomponent.java:210) [jersey-servlet-1.17.jar:1.17] @ com.sun.jersey.spi.container.servlet.servletcontainer.init(servletcontainer.java:374) [jersey-servlet-1.17.jar:1.17] @ com.sun.jersey.spi.container.servlet.servletcontainer.init(servletcontainer.java:557) [jersey-servlet-1.17.jar:1.17] @ javax.servlet.genericservlet.init(genericservlet.java:160) [servlet-api.jar:3.0.fr] @ org.apache.catalina.core.standardwrapper.initservlet(standardwrapper.java:1266) [catalina.jar:7.0.32] @ org.apache.catalina.core.standardwrapper.loadservlet(standardwrapper.java:1185) [catalina.jar:7.0.32] @ org.apache.catalina.core.standardwrapper.load(standardwrapper.java:1080) [catalina.jar:7.0.32] @ org.apache.catalina.core.standardcontext.loadonstartup(standardcontext.java:5027) [catalina.jar:7.0.32] @ org.apache.catalina.core.standardcontext.startinternal(standardcontext.java:5314) [catalina.jar:7.0.32] @ org.apache.catalina.util.lifecyclebase.start(lifecyclebase.java:150) [catalina.jar:7.0.32] @ org.apache.catalina.core.containerbase.addchildinternal(containerbase.java:901) [catalina.jar:7.0.32] @ org.apache.catalina.core.containerbase.addchild(containerbase.java:877) [catalina.jar:7.0.32] @ org.apache.catalina.core.standardhost.addchild(standardhost.java:633) [catalina.jar:7.0.32] @ org.apache.catalina.startup.hostconfig.deploydescriptor(hostconfig.java:655) [catalina.jar:7.0.32] @ org.apache.catalina.startup.hostconfig$deploydescriptor.run(hostconfig.java:1628) [catalina.jar:7.0.32] @ java.util.concurrent.executors$runnableadapter.call(executors.java:441) [na:1.6.0_35] @ java.util.concurrent.futuretask$sync.innerrun(futuretask.java:303) [na:1.6.0_35] @ java.util.concurrent.futuretask.run(futuretask.java:138) [na:1.6.0_35] @ java.util.concurrent.threadpoolexecutor$worker.runtask(threadpoolexecutor.java:886) [na:1.6.0_35] @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:908) [na:1.6.0_35] @ java.lang.thread.run(thread.java:662) [na:1.6.0_35] severe: class com.rest.common.gsonmessagebodyhandler abstract class , cannot instantiated. 2013-05-05 01:08:29.675 [localhost-startstop-1] error o.a.c.c.c.[.[localhost].[/rest] - standardwrapper.throwable com.sun.jersey.spi.inject.errors$errormessagesexception: null @ com.sun.jersey.spi.inject.errors.processerrormessages(errors.java:170) ~[jersey-core-1.17.jar:1.17] @ com.sun.jersey.spi.inject.errors.postprocess(errors.java:136) ~[jersey-core-1.17.jar:1.17] @ com.sun.jersey.spi.inject.errors.processwitherrors(errors.java:199) ~[jersey-core-1.17.jar:1.17] @ com.sun.jersey.server.impl.application.webapplicationimpl.initiate(webapplicationimpl.java:770) ~[jersey-server-1.17.jar:1.17] @ com.sun.jersey.server.impl.application.webapplicationimpl.initiate(webapplicationimpl.java:765) ~[jersey-server-1.17.jar:1.17] @ com.sun.jersey.spi.container.servlet.servletcontainer.initiate(servletcontainer.java:489) ~[jersey-servlet-1.17.jar:1.17] @ com.sun.jersey.spi.container.servlet.servletcontainer$internalwebcomponent.initiate(servletcontainer.java:319) ~[jersey-servlet-1.17.jar:1.17] @ com.sun.jersey.spi.container.servlet.webcomponent.load(webcomponent.java:605) ~[jersey-servlet-1.17.jar:1.17] @ com.sun.jersey.spi.container.servlet.webcomponent.init(webcomponent.java:210) ~[jersey-servlet-1.17.jar:1.17] @ com.sun.jersey.spi.container.servlet.servletcontainer.init(servletcontainer.java:374) ~[jersey-servlet-1.17.jar:1.17] @ com.sun.jersey.spi.container.servlet.servletcontainer.init(servletcontainer.java:557) ~[jersey-servlet-1.17.jar:1.17] @ javax.servlet.genericservlet.init(genericservlet.java:160) ~[servlet-api.jar:3.0.fr] @ org.apache.catalina.core.standardwrapper.initservlet(standardwrapper.java:1266) [catalina.jar:7.0.32] @ org.apache.catalina.core.standardwrapper.loadservlet(standardwrapper.java:1185) [catalina.jar:7.0.32] @ org.apache.catalina.core.standardwrapper.load(standardwrapper.java:1080) [catalina.jar:7.0.32] @ org.apache.catalina.core.standardcontext.loadonstartup(standardcontext.java:5027) [catalina.jar:7.0.32] @ org.apache.catalina.core.standardcontext.startinternal(standardcontext.java:5314) [catalina.jar:7.0.32] @ org.apache.catalina.util.lifecyclebase.start(lifecyclebase.java:150) [catalina.jar:7.0.32] @ org.apache.catalina.core.containerbase.addchildinternal(containerbase.java:901) [catalina.jar:7.0.32] @ org.apache.catalina.core.containerbase.addchild(containerbase.java:877) [catalina.jar:7.0.32] @ org.apache.catalina.core.standardhost.addchild(standardhost.java:633) [catalina.jar:7.0.32] @ org.apache.catalina.startup.hostconfig.deploydescriptor(hostconfig.java:655) [catalina.jar:7.0.32] @ org.apache.catalina.startup.hostconfig$deploydescriptor.run(hostconfig.java:1628) [catalina.jar:7.0.32] @ java.util.concurrent.executors$runnableadapter.call(executors.java:441) [na:1.6.0_35] @ java.util.concurrent.futuretask$sync.innerrun(futuretask.java:303) [na:1.6.0_35] @ java.util.concurrent.futuretask.run(futuretask.java:138) [na:1.6.0_35] @ java.util.concurrent.threadpoolexecutor$worker.runtask(threadpoolexecutor.java:886) [na:1.6.0_35] @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:908) [na:1.6.0_35] @ java.lang.thread.run(thread.java:662) [na:1.6.0_35] 2013-05-05 01:08:29.691 [localhost-startstop-1] error o.a.c.c.c.[.[localhost].[/rest] - servlet /rest threw load() exception com.sun.jersey.spi.inject.errors$errormessagesexception: null @ com.sun.jersey.spi.inject.errors.processerrormessages(errors.java:170) ~[jersey-core-1.17.jar:1.17] @ com.sun.jersey.spi.inject.errors.postprocess(errors.java:136) ~[jersey-core-1.17.jar:1.17] @ com.sun.jersey.spi.inject.errors.processwitherrors(errors.java:199) ~[jersey-core-1.17.jar:1.17] @ com.sun.jersey.server.impl.application.webapplicationimpl.initiate(webapplicationimpl.java:770) ~[jersey-server-1.17.jar:1.17] @ com.sun.jersey.server.impl.application.webapplicationimpl.initiate(webapplicationimpl.java:765) ~[jersey-server-1.17.jar:1.17] @ com.sun.jersey.spi.container.servlet.servletcontainer.initiate(servletcontainer.java:489) ~[jersey-servlet-1.17.jar:1.17] @ com.sun.jersey.spi.container.servlet.servletcontainer$internalwebcomponent.initiate(servletcontainer.java:319) ~[jersey-servlet-1.17.jar:1.17] @ com.sun.jersey.spi.container.servlet.webcomponent.load(webcomponent.java:605) ~[jersey-servlet-1.17.jar:1.17] @ com.sun.jersey.spi.container.servlet.webcomponent.init(webcomponent.java:210) ~[jersey-servlet-1.17.jar:1.17] @ com.sun.jersey.spi.container.servlet.servletcontainer.init(servletcontainer.java:374) ~[jersey-servlet-1.17.jar:1.17] @ com.sun.jersey.spi.container.servlet.servletcontainer.init(servletcontainer.java:557) ~[jersey-servlet-1.17.jar:1.17] @ javax.servlet.genericservlet.init(genericservlet.java:160) ~[servlet-api.jar:3.0.fr] @ org.apache.catalina.core.standardwrapper.initservlet(standardwrapper.java:1266) ~[catalina.jar:7.0.32] @ org.apache.catalina.core.standardwrapper.loadservlet(standardwrapper.java:1185) ~[catalina.jar:7.0.32] @ org.apache.catalina.core.standardwrapper.load(standardwrapper.java:1080) ~[catalina.jar:7.0.32] @ org.apache.catalina.core.standardcontext.loadonstartup(standardcontext.java:5027) [catalina.jar:7.0.32] @ org.apache.catalina.core.standardcontext.startinternal(standardcontext.java:5314) [catalina.jar:7.0.32] @ org.apache.catalina.util.lifecyclebase.start(lifecyclebase.java:150) [catalina.jar:7.0.32] @ org.apache.catalina.core.containerbase.addchildinternal(containerbase.java:901) [catalina.jar:7.0.32] @ org.apache.catalina.core.containerbase.addchild(containerbase.java:877) [catalina.jar:7.0.32] @ org.apache.catalina.core.standardhost.addchild(standardhost.java:633) [catalina.jar:7.0.32] @ org.apache.catalina.startup.hostconfig.deploydescriptor(hostconfig.java:655) [catalina.jar:7.0.32] @ org.apache.catalina.startup.hostconfig$deploydescriptor.run(hostconfig.java:1628) [catalina.jar:7.0.32] @ java.util.concurrent.executors$runnableadapter.call(executors.java:441) [na:1.6.0_35] @ java.util.concurrent.futuretask$sync.innerrun(futuretask.java:303) [na:1.6.0_35] @ java.util.concurrent.futuretask.run(futuretask.java:138) [na:1.6.0_35] @ java.util.concurrent.threadpoolexecutor$worker.runtask(threadpoolexecutor.java:886) [na:1.6.0_35] @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:908) [na:1.6.0_35] @ java.lang.thread.run(thread.java:662) [na:1.6.0_35]
maybe you're not preserving annotations yet:
-keepattributes *annotation*
Comments
Post a Comment