On Jan 7, 2009, at 2:39 PM, Gili wrote:
>
> Is is possible to generate the list of providers at startup
The list is defined in the META-INF/services.
> but only
> actually load the classes at first use?
No, the class definitions of providers are required at initialization.
The solution is easy: do not annotate the infrastructure providers
with @Provider. There is really no need to complicate matters.
> This way the JAXB provider would
> never load if I never use it. I assume we're trying to work around
> NoClassDefFoundError here...
>
Specifically class initialize errors.
Paul.
> Gili
>
> Paul Sandoz (via Nabble) wrote:
>
> >
> > On Jan 6, 2009, at 7:01 PM, Gili wrote:
> >
> > >
> > > Paul,
> > >
> > > Can you clarify what would happen if all classes (including
> > > infrastructure
> > > ones) were to be marked using @Provider.
> >
> > It would mean that infrastructure provides may get registered by the
> > user configuration when scanning e.g. file-based scanning as you
> > found. They are not intended to be registered by the end-user.
> >
> >
> > > You've said in the past this would
> > > break something but I don't understand what.
> > >
> >
> > I recall saying that i would have to do some workarounds so that
> such
> > providers are not registered by the user configuration when
> scanning.
> > What i want to avoid is having to hard code package names to
> ignore or
> > doing some other workaround. I could annotate with another
> annotation
> > which states that it is to be ignored on scanning. But this all
> seems
> > unnecessary when there is a simpler solution of not annotating.
> >
> > In what i proposed in my previous email was that infrastructure
> > providers should not cause the application to fail if the
> > infrastructure provider class cannot be initialized. For user-
> > registered providers i am proposing the opposite. For example,
> perhaps
> > in your application you are not using JAXB (i dunno if you are or
> not,
> > but lets assume so for the sake of argument you are not and are
> using
> > Java 5) if the JAXB providers were annotated with @Provider your
> > application would fail because the JAXB providers cannot not be
> > instantiated and you would have to add JAXB jars to your class path
> > even though you do not require JAXB.
> >
> > Paul.
> >
> >
> > > Thanks,
> > > Gili
> > >
> > >
> > > Paul Sandoz wrote:
> > >>
> > >>
> > >> On Jan 6, 2009, at 6:03 PM, Gili wrote:
> > >>
> > >>>
> > >>> I used a debugger to walk through the code and as far as I can
> > >>> tell if
> > >>> @Provider is missing then the Guice getComponentProvider() is
> never
> > >>> invoked
> > >>> in the first place (this is in Jersey revision 1816).
> > >>
> > >> Thanks for doing that, it now confirms what i expected.
> > >>
> > >>
> > >>> Sounds like a second
> > >>> bug in Jersey no?
> > >>>
> > >>
> > >> Yes. I think the manner of a fix depends on where we choose to
> fail
> > >> on
> > >> class initialization. My preference would be that we fix the
> > >> annotation class scanner to fail on class loading causing an
> error
> > >> for
> > >> the config initialization resulting in application failure
> i.e. that
> > >> is the earliest point it can fail for such initialization
> cases. (In
> > >> general initialization of classes should fail on class loading
> for
> > >> all
> > >> cases.)
> > >>
> > >> I am still pondering what to do about the infrastructure
> providers.
> > >> Having looked at it more, i really want to avoid annotating
> them with
> > >> @Provider so they *do not* get picked up by user-defined
> > >> configuration, and we still need to support the "keep on
> trucking"
> > >> approach to the infrastructure providers. So i now think we
> need to
> > >> treat @Provider providers registered by the user different to
> those
> > >> registered by META-INF/service and supplied by Jersey. So i
> would
> > >> like
> > >> to revert back the multipart readers/writers to not be
> annotated with
> > >> @Provider.
> > >>
> > >> In summary:
> > >>
> > >> 1) the user-registered configuration class loading will
> perform
> > >> class initialization and if initialization fails the
> application will
> > >> fail early
> > >> before instantiation is attempted;
> > >>
> > >> 2) we can improve the reporting of infrastructure providers
> that
> > >> fail to load (a concise warning that also alleviates concerns
> for
> > >> those
> > >> who do not have an issue and linking to the dependencies
> > >> document seems appropriate); and
> > >>
> > >> 3) The ResourceConfig implementations should ignore any
> classes not
> > >> annotated with @Provider or @Path. I still need to think
> > >> how to do this without breaking compatibility. I am not
> sure
> > >> it is possible.
> > >>
> > >> Paul.
> > >>
> > >>
> > >>> Gili
> > >>>
> > >>>
> > >>> Paul Sandoz wrote:
> > >>>>
> > >>>> After some further investigation I realized that my
> evaluation is
> > >>>> wrong. Only when instantiating does a NoClassDefFoundError
> > >>>> regardless
> > >>>> of the difference in class loading (which is in the process of
> > >>>> being
> > >>>> fixed).
> > >>>>
> > >>>> I notice that your GuiceComponentProviderFactory is
> instantiating
> > >>>> the
> > >>>> provider class. The registered IoC component provider factory
> > >>>> will be
> > >>>> asked to instantiate components registered in both cases
> (@Provider
> > >>>> and META-INF/services) and if the provider factory returns
> null
> > >>>> Jersey
> > >>>> instantiates. For some reasons your provider factory is
> > >>>> instantiating
> > >>>> for the case of a class annotated with @Provider but not
> otherwise,
> > >>>> does your code have some logic to check annotations on the
> > >>>> classes it
> > >>>> instantiates?
> > >>>>
> > >>>> Paul.
> > >>>>
> > >>>> On Dec 24, 2008, at 3:10 AM, Gili wrote:
> > >>>>
> > >>>>>
> > >>>>> Here is what I found out:
> > >>>>>
> > >>>>> - The MultiPart provider fails to initialize because
> Javamail is
> > >>>>> missing.
> > >>>>> Glassfish bundles this dependency, whereas Tomcat does not.
> > >>>>> - If the MessageBodyReader omits @Provider then no error
> message
> > >>>>> shows up.
> > >>>>> The binding fails silently, causing Jersey to issue a
> confusing
> > >>>>> error
> > >>>>> message about the MessageBodyReader being missing when in
> fact
> > >>>>> it is
> > >>>>> not.
> > >>>>> - If the MessageBodyReader is annotated using @Provider the
> > >>>>> following
> > >>>>> exception shows up when the webapp is initialized:
> > >>>>>
> > >>>>> SEVERE: Exception starting filter warpServletFilter
> > >>>>> java.lang.NoClassDefFoundError: javax/mail/MessagingException
> > >>>>> at java.lang.Class.getDeclaredConstructors0(Native
> Method)
> > >>>>> at
> java.lang.Class.privateGetDeclaredConstructors(Class.java:
> > >>>>> 2389)
> > >>>>> at java.lang.Class.getDeclaredConstructors(Class.java:
> 1836)
> > >>>>> at
> > >>>>> com
> > >>>>> .google
> >
> >>>>> .inject.spi.InjectionPoint.forConstructorOf(InjectionPoint.java:
> > >>>>> 192)
> > >>>>> at
> > >>>>> com
> > >>>>> .google
> > >>>>> .inject.ConstructorInjector.<init>(ConstructorInjector.java:
> > >>>>> 45)
> > >>>>> at com.google.inject.InjectorImpl
> $5.create(InjectorImpl.java:
> > >>>>> 728)
> > >>>>> at com.google.inject.InjectorImpl
> $5.create(InjectorImpl.java:
> > >>>>> 724)
> > >>>>> at
> > >>>>> com.google.inject.internal.FailableCache
> > >>>>> $1.create(FailableCache.java:
> > >>>>> 32)
> > >>>>> at
> > >>>>> com
> >
> >
> >
> >>> .google.inject.internal.ReferenceCache.create(ReferenceCache.java:
> > >>>>> 54)
> > >>>>> at
> > >>>>> com
> > >>>>> .google
> > >>>>> .inject
> > >>>>> .internal
> > >>>>> .AbstractReferenceCache
> > >>>>> .internalCreate(AbstractReferenceCache.java:
> > >>>>> 59)
> > >>>>> at
> > >>>>> com
> > >>>>> .google
> > >>>>> .inject
> >
> >
> >>>> .internal.AbstractReferenceCache.get(AbstractReferenceCache.java:
> > >>>>> 116)
> > >>>>> at
> > >>>>>
> com.google.inject.internal.ReferenceCache.get(ReferenceCache.java:
> > >>>>> 28)
> > >>>>> at
> > >>>>>
> com.google.inject.internal.FailableCache.get(FailableCache.java:
> > >>>>> 43)
> > >>>>> at
> > >>>>> com.google.inject.InjectorImpl
> > >>>>> $LateBoundConstructor.bind(InjectorImpl.java:431)
> > >>>>> at
> > >>>>> com
> >
> >
> >>>> .google.inject.ClassBindingImpl.initialize(ClassBindingImpl.java:
> > >>>>> 46)
> > >>>>> at
> > >>>>> com
> >
> >>>>> .google.inject.InjectorImpl.initializeBinding(InjectorImpl.java:
> > >>>>> 320)
> > >>>>> at
> > >>>>> com
> > >>>>> .google
> >
> >>>>> .inject.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:
> > >>>>> 615)
> > >>>>> at
> > >>>>> com
> > >>>>> .google
> > >>>>> .inject
> >
> >
> >>>> .InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:
> > >>>>> 558)
> > >>>>> at
> > >>>>> com
> > >>>>> .google
> > >>>>> .inject.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:
> > >>>>> 168)
> > >>>>> at
> > >>>>> com
> >
> >>>>> .google.inject.InjectorImpl.getBindingOrThrow(InjectorImpl.java:
> > >>>>> 128)
> > >>>>> at
> > >>>>> com.google.inject.InjectorImpl.getBinding(InjectorImpl.java:
> 105)
> > >>>>> at
> > >>>>> com.google.inject.InjectorImpl.getBinding(InjectorImpl.java:
> 60)
> > >>>>> at
> > >>>>> com
> > >>>>> .sun
> > >>>>> .jersey
> > >>>>> .spi
> > >>>>> .guice
> > >>>>> .container
> > >>>>> .GuiceComponentProviderFactory
> > >>>>> .getComponentProvider(GuiceComponentProviderFactory.java:98)
> > >>>>> at
> > >>>>> com
> > >>>>> .sun
> > >>>>> .jersey
> > >>>>> .spi
> > >>>>> .guice
> > >>>>> .container
> > >>>>> .GuiceComponentProviderFactory
> > >>>>> .getComponentProvider(GuiceComponentProviderFactory.java:87)
> > >>>>> at
> > >>>>> com
> > >>>>> .sun
> > >>>>> .jersey
> > >>>>> .core
> > >>>>> .spi
> > >>>>> .component
> > >>>>> .ioc
> >
> >
> >
> >>> .IoCProviderFactory._getComponentProvider(IoCProviderFactory.java:
> > >>>>> 68)
> > >>>>> at
> > >>>>> com
> > >>>>> .sun
> > >>>>> .jersey
> > >>>>> .core
> > >>>>> .spi
> > >>>>> .component
> > >>>>> .ProviderFactory.getComponentProvider(ProviderFactory.java:
> > >>>>> 126)
> > >>>>> at
> > >>>>> com
> > >>>>> .sun
> > >>>>> .jersey
> > >>>>> .core
> > >>>>> .spi
> >
> >>>>> .component.ProviderServices.getComponent(ProviderServices.java:
> > >>>>> 163)
> > >>>>> at
> > >>>>> com
> > >>>>> .sun
> > >>>>> .jersey
> > >>>>> .core
> > >>>>> .spi
> > >>>>> .component
> >
> >>>>> .ProviderServices.getProvidersAndServices(ProviderServices.java:
> > >>>>> 119)
> > >>>>> at
> > >>>>> com
> > >>>>> .sun
> > >>>>> .jersey
> > >>>>> .core
> > >>>>> .spi
> > >>>>> .factory
> > >>>>> .MessageBodyFactory.getProviderMap(MessageBodyFactory.java:
> > >>>>> 136)
> > >>>>> at
> > >>>>> com
> > >>>>> .sun
> > >>>>> .jersey
> > >>>>> .core
> > >>>>> .spi
> >
> >>>>> .factory.MessageBodyFactory.initReaders(MessageBodyFactory.java:
> > >>>>> 110)
> > >>>>> at
> > >>>>> com
> > >>>>> .sun
> > >>>>> .jersey
> >
> >
> >
> >>> .core.spi.factory.MessageBodyFactory.init(MessageBodyFactory.java:
> > >>>>> 105)
> > >>>>> at
> > >>>>> com
> > >>>>> .sun
> > >>>>> .jersey
> > >>>>> .server
> > >>>>> .impl
> >
> >
> >>>> .application.WebApplicationImpl.initiate(WebApplicationImpl.java:
> > >>>>> 462)
> > >>>>> at
> > >>>>> com
> > >>>>> .sun
> > >>>>> .jersey
> > >>>>> .spi
> >
> >
> >>>> .guice.container.servlet.GuiceServlet.initiate(GuiceServlet.java:
> > >>>>> 47)
> > >>>>> at
> > >>>>> com
> > >>>>> .sun
> > >>>>> .jersey
> > >>>>> .spi
> >
> >>>>> .container.servlet.ServletContainer.load(ServletContainer.java:
> > >>>>> 540)
> > >>>>> at
> > >>>>> com
> > >>>>> .sun
> > >>>>> .jersey
> > >>>>> .spi
> >
> >>>>> .container.servlet.ServletContainer.init(ServletContainer.java:
> > >>>>> 207)
> > >>>>> at
> > >>>>> com
> > >>>>> .wideplay
> > >>>>> .warp.servlet.ServletDefinition.init(ServletDefinition.java:
> > >>>>> 50)
> > >>>>> at
> > >>>>> com
> > >>>>> .wideplay
> > >>>>> .warp
> >
> >
> >>>> .servlet.ManagedServletPipeline.init(ManagedServletPipeline.java:
> > >>>>> 31)
> > >>>>> at
> > >>>>> com
> > >>>>> .wideplay
> > >>>>> .warp
> > >>>>> .servlet
> >
> >>>>> .ManagedFilterPipeline.initPipeline(ManagedFilterPipeline.java:
> 38)
> > >>>>> at
> com.wideplay.warp.servlet.WebFilter.init(WebFilter.java:
> > >>>>> 70)
> > >>>>> at
> > >>>>> org
> > >>>>> .apache
> > >>>>> .catalina
> > >>>>> .core
> >
> >>>>> .ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:
> > >>>>> 275)
> > >>>>> at
> > >>>>> org
> > >>>>> .apache
> > >>>>> .catalina
> > >>>>> .core
> > >>>>> .ApplicationFilterConfig
> > >>>>> .setFilterDef(ApplicationFilterConfig.java:
> > >>>>> 397)
> > >>>>> at
> > >>>>> org
> > >>>>> .apache
> > >>>>> .catalina
> >
> >
> >
> >>> .core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:
> > >>>>> 108)
> > >>>>> at
> > >>>>> org
> > >>>>> .apache
> >
> >>>>> .catalina.core.StandardContext.filterStart(StandardContext.java:
> > >>>>> 3709)
> > >>>>> at
> > >>>>> org
> >
> >
> >>>> .apache.catalina.core.StandardContext.start(StandardContext.java:
> > >>>>> 4363)
> > >>>>> at
> > >>>>> org
> > >>>>> .apache
> >
> >
> >>>> .catalina.core.ContainerBase.addChildInternal(ContainerBase.java:
> > >>>>> 791)
> > >>>>> at
> > >>>>> org
> >
> >>>>> .apache.catalina.core.ContainerBase.addChild(ContainerBase.java:
> > >>>>> 771)
> > >>>>> at
> > >>>>>
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:
> > >>>>> 525)
> > >>>>> at
> > >>>>> org
> > >>>>> .apache
> >
> >>>>> .catalina.startup.HostConfig.deployDescriptor(HostConfig.java:
> > >>>>> 627)
> > >>>>> at
> > >>>>>
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:
> > >>>>> 511)
> > >>>>> at
> > >>>>>
> org.apache.catalina.startup.HostConfig.check(HostConfig.java:1231)
> > >>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> > >>>>> Method)
> > >>>>> at
> > >>>>> sun
> > >>>>> .reflect
> >
> >>>>> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
> 39)
> > >>>>> at
> > >>>>> sun
> > >>>>> .reflect
> > >>>>> .DelegatingMethodAccessorImpl
> > >>>>> .invoke(DelegatingMethodAccessorImpl.java:25)
> > >>>>> at java.lang.reflect.Method.invoke(Method.java:597)
> > >>>>> at
> > >>>>> org
> > >>>>> .apache
> >
> >>>>> .tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:
> > >>>>> 297)
> > >>>>> at
> > >>>>> com
> > >>>>> .sun
> > >>>>> .jmx
> > >>>>> .interceptor
> > >>>>> .DefaultMBeanServerInterceptor
> > >>>>> .invoke(DefaultMBeanServerInterceptor.java:836)
> > >>>>> at
> > >>>>>
> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:
> > >>>>> 761)
> > >>>>> at
> > >>>>> org
> >
> >
> >
> >>> .apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:
> > >>>>> 1471)
> > >>>>> at
> > >>>>> org
> > >>>>> .apache
> > >>>>> .catalina.manager.ManagerServlet.deploy(ManagerServlet.java:
> > >>>>> 824)
> > >>>>> at
> > >>>>> org
> >
> >
> >
> >>> .apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:
> > >>>>> 350)
> > >>>>> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:
> > >>>>> 617)
> > >>>>> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:
> > >>>>> 717)
> > >>>>> at
> > >>>>> org
> > >>>>> .apache
> > >>>>> .catalina
> > >>>>> .core
> > >>>>> .ApplicationFilterChain
> > >>>>> .internalDoFilter(ApplicationFilterChain.java:
> > >>>>> 290)
> > >>>>> at
> > >>>>> org
> > >>>>> .apache
> > >>>>> .catalina
> >
> >
> >
> >>> .core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
> > >>>>> 206)
> > >>>>> at
> > >>>>> org
> > >>>>> .apache
> > >>>>> .catalina
> > >>>>> .core.StandardWrapperValve.invoke(StandardWrapperValve.java:
> > >>>>> 233)
> > >>>>> at
> > >>>>> org
> > >>>>> .apache
> > >>>>> .catalina
> > >>>>> .core.StandardContextValve.invoke(StandardContextValve.java:
> > >>>>> 191)
> > >>>>> at
> > >>>>> org
> > >>>>> .apache
> > >>>>> .catalina
> >
> >>>>> .authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:
> > >>>>> 525)
> > >>>>> at
> > >>>>> org
> > >>>>> .apache
> >
> >>>>> .catalina.core.StandardHostValve.invoke(StandardHostValve.java:
> > >>>>> 128)
> > >>>>> at
> > >>>>> org
> > >>>>> .apache
> >
> >>>>> .catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
> > >>>>> 102)
> > >>>>> at
> > >>>>> org
> > >>>>> .apache
> > >>>>> .catalina
> > >>>>> .core.StandardEngineValve.invoke(StandardEngineValve.java:
> > >>>>> 109)
> > >>>>> at
> > >>>>> org
> > >>>>> .apache
> > >>>>> .catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
> > >>>>> 286)
> > >>>>> at
> > >>>>> org
> > >>>>> .apache
> > >>>>> .coyote.http11.Http11Processor.process(Http11Processor.java:
> > >>>>> 845)
> > >>>>> at
> > >>>>> org.apache.coyote.http11.Http11Protocol
> > >>>>> $Http11ConnectionHandler.process(Http11Protocol.java:583)
> > >>>>> at
> > >>>>> org.apache.tomcat.util.net.JIoEndpoint
> > >>>>> $Worker.run(JIoEndpoint.java:
> > >>>>> 447)
> > >>>>> at java.lang.Thread.run(Thread.java:619)
> > >>>>> Caused by: java.lang.ClassNotFoundException:
> > >>>>> javax.mail.MessagingException
> > >>>>> at
> > >>>>> org
> > >>>>> .apache
> > >>>>> .catalina
> > >>>>> .loader.WebappClassLoader.loadClass(WebappClassLoader.java:
> > >>>>> 1387)
> > >>>>> at
> > >>>>> org
> > >>>>> .apache
> > >>>>> .catalina
> > >>>>> .loader.WebappClassLoader.loadClass(WebappClassLoader.java:
> > >>>>> 1233)
> > >>>>> at
> java.lang.ClassLoader.loadClassInternal(ClassLoader.java:
> > >>>>> 320)
> > >>>>> ... 75 more
> > >>>>>
> > >>>>> I filed two bug reports:
> > >>>>> https://jersey.dev.java.net/issues/show_bug.cgi?id=171
> > >>>>> https://jersey.dev.java.net/issues/show_bug.cgi?id=172
> > >>>>>
> > >>>>> Gili
> > >>>>>
> > >>>>>
> > >>>>> Gili wrote:
> > >>>>>>
> > >>>>>> It's taking me forever to debug this, but in the process of
> > >>>>>> troubleshooting I noticed that MultiPartReader isn't
> annotated
> > >>>>>> with
> > >>>>>> @Provider as required according to MessageBodyReader's
> > >>>>>> specification. The
> > >>>>>> Javadoc reads "To add a MessageBodyReader implementation,
> > >>>>>> annotate
> > >>>>>> the
> > >>>>>> implementation class with @Provider". Could this be it? It
> still
> > >>>>>> doesn't
> > >>>>>> explain why this works under Glassfish without the
> annotation.
> > >>>>>>
> > >>>>>> Gili
> > >>>>>>
> > >>>>>>
> > >>>>>> Gili wrote:
> > >>>>>>>
> > >>>>>>> I took my existing webapp, moved from Glassfish v2 to
> Tomcat and
> > >>>>>>> all of a
> > >>>>>>> sudden I get:
> > >>>>>>>
> > >>>>>>> SEVERE: A message body reader for Java type, class
> > >>>>>>> com.sun.jersey.multipart.MultiPart, and MIME media type,
> > >>>>>>> multipart/
> > >>>>>>> mixed,
> > >>>>>>> was not found
> > >>>>>>>
> > >>>>>>> I'm guessing that Jersey provider scanning is failing under
> > >>>>>>> Tomcat
> > >>>>>>> for
> > >>>>>>> some reason...? Paul, Craig can you guys confirm this?
> > >>>>>>>
> > >>>>>>> Thanks,
> > >>>>>>> Gili
> > >>>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>
> > >>>>> --
> > >>>>> View this message in context:
> > >>>>>
> > http://n2.nabble.com/Jersey-provider-detection-fails-under-Tomcat--tp1688690p1696750.html
> > >>>>> Sent from the Jersey mailing list archive at Nabble.com.
> > >>>>>
> > >>>>>
> > >>>>>
> >
> ---------------------------------------------------------------------
> > >>>>> To unsubscribe, e-mail: users-unsubscribe@...
> > <http://n2.nabble.com/user/SendEmail.jtp?type=node&node=2121811&i=0>
> > >>>>> For additional commands, e-mail: users-help@...
> > <http://n2.nabble.com/user/SendEmail.jtp?type=node&node=2121811&i=1>
> > >>>>>
> > >>>>
> > >>>>
> > >>>>
> ---------------------------------------------------------------------
> > >>>> To unsubscribe, e-mail: users-unsubscribe@...
> > <http://n2.nabble.com/user/SendEmail.jtp?type=node&node=2121811&i=2>
> > >>>> For additional commands, e-mail: users-help@...
> > <http://n2.nabble.com/user/SendEmail.jtp?type=node&node=2121811&i=3>
> > >>>>
> > >>>>
> > >>>>
> > >>>
> > >>> --
> > >>> View this message in context:
> > >>>
> > http://n2.nabble.com/Jersey-provider-detection-fails-under-Tomcat--tp1688690p2118383.html
> > >>> Sent from the Jersey mailing list archive at Nabble.com.
> > >>>
> > >>>
> > >>>
> ---------------------------------------------------------------------
> > >>> To unsubscribe, e-mail: users-unsubscribe@...
> > <http://n2.nabble.com/user/SendEmail.jtp?type=node&node=2121811&i=4>
> > >>> For additional commands, e-mail: users-help@...
> > <http://n2.nabble.com/user/SendEmail.jtp?type=node&node=2121811&i=5>
> > >>>
> > >>
> > >>
> > >>
> ---------------------------------------------------------------------
> > >> To unsubscribe, e-mail: users-unsubscribe@...
> > <http://n2.nabble.com/user/SendEmail.jtp?type=node&node=2121811&i=6>
> > >> For additional commands, e-mail: users-help@...
> > <http://n2.nabble.com/user/SendEmail.jtp?type=node&node=2121811&i=7>
> > >>
> > >>
> > >>
> > >
> > > --
> > > View this message in context:
> > http://n2.nabble.com/Jersey-provider-detection-fails-under-Tomcat--tp1688690p2118627.html
> > > Sent from the Jersey mailing list archive at Nabble.com.
> > >
> > >
> > >
> ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscribe@...
> > <http://n2.nabble.com/user/SendEmail.jtp?type=node&node=2121811&i=8>
> > > For additional commands, e-mail: users-help@...
> > <http://n2.nabble.com/user/SendEmail.jtp?type=node&node=2121811&i=9>
> > >
> >
> >
> >
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@...
> > <http://n2.nabble.com/user/SendEmail.jtp?
> type=node&node=2121811&i=10>
> > For additional commands, e-mail: users-help@...
> > <http://n2.nabble.com/user/SendEmail.jtp?
> type=node&node=2121811&i=11>
> >
> >
> >
> >
> ------------------------------------------------------------------------
> > This email is a reply to your post @
> > http://n2.nabble.com/Jersey-provider-detection-fails-under-Tomcat--tp1688690p2121811.html
> > You can reply by email or by visting the link above.
> >
>
> View this message in context: Re: [Jersey] Jersey provider-detection
> fails under Tomcat?
> Sent from the Jersey mailing list archive at Nabble.com.