users@jersey.java.net

Re: [Jersey] Injected into hell

From: Paul Sandoz <Paul.Sandoz_at_Sun.COM>
Date: Mon, 11 Aug 2008 11:27:36 +0200

Hi Martin,

Grrr... that is odd as the InjectableProvider is used extensively by
Jersey itself.

I just wrote a simple test example, with the InjectableProvider as
inner class of a servlet that overrides the initiate method, and it
works fine for me using the latest 0.9 SNAPSHOT build. I am taking
the rest of the day off, but i will try and send the example to you
either this evening or tomorrow.

Paul.


On Aug 9, 2008, at 4:34 PM, Martin Probst wrote:

> Hi Paul,
>
>> Try this:
>>
>> private class SessionProvider
>> implements InjectableProvider<Context, Type> {
>>
>> public Injectable<Session> getInjectable(ComponentContext ic,
>> Context a, Type c) {
>> if (Session.class == c) {
>> return new Injectable<Session>() {
>>
>> public Session getValue(HttpContext context) {
>> return persistence.getSession();
>> }
>> };
>> } else
>> return null;
>> }
>>
>> public Scope getScope() {
>> return Scope.PerRequest;
>> }
>> }
>
> That doesn't help either:
>
> java.lang.ClassCastException: java.lang.Class
> at com.sun.jersey.impl.model.ReflectionHelper.resolveTypeVariable
> (ReflectionHelper.java:184)
> at com.sun.jersey.impl.model.ReflectionHelper.resolveTypeVariable
> (ReflectionHelper.java:179)
> at
> com.sun.jersey.impl.application.InjectableProviderFactory.getResolvedT
> ype(InjectableProviderFactory.java:157)
> at
> com.sun.jersey.impl.application.InjectableProviderFactory.getMetaArgum
> ents(InjectableProviderFactory.java:137)
> at com.sun.jersey.impl.application.InjectableProviderFactory.add
> (InjectableProviderFactory.java:99)
> at
> com.sun.jersey.impl.application.InjectableProviderFactory.configure
> (InjectableProviderFactory.java:114)
> at com.sun.jersey.impl.application.WebApplicationImpl.initiate
> (WebApplicationImpl.java:571)
> at com.sun.jersey.impl.application.WebApplicationImpl.initiate
> (WebApplicationImpl.java:478)
> at com.sun.jersey.spi.container.servlet.ServletContainer.initiate
> (ServletContainer.java:559)
> at de.hpi_web.wsminer.Servlet$HibernatingServletContainer.initiate
> (Servlet.java:69)
> at com.sun.jersey.spi.container.servlet.ServletContainer.load
> (ServletContainer.java:483)
> at com.sun.jersey.spi.container.servlet.ServletContainer.init
> (ServletContainer.java:165)
> at de.hpi_web.wsminer.Servlet.init(Servlet.java:94)
> at org.apache.catalina.core.StandardWrapper.loadServlet
> (StandardWrapper.java:1172)
> at org.apache.catalina.core.StandardWrapper.load
> (StandardWrapper.java:992)
> at org.apache.catalina.core.StandardContext.loadOnStartup
> (StandardContext.java:4058)
> at org.apache.catalina.core.StandardContext.start
> (StandardContext.java:4371)
> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:
> 1045)
> at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:
> 1045)
> at org.apache.catalina.core.StandardEngine.start
> (StandardEngine.java:443)
> at org.apache.catalina.core.StandardService.start
> (StandardService.java:516)
> at org.apache.catalina.core.StandardServer.start
> (StandardServer.java:710)
> at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
> 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:585)
> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
>
> Any ideas?
>
> Regards,
> Martin
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>