users@jersey.java.net

Re: [Jersey] ClassCastException on deploying ContextResolver?

From: Paul Sandoz <Paul.Sandoz_at_Sun.COM>
Date: Mon, 26 Apr 2010 16:39:12 +0200

Hi Laird,

I think the problem may be to do with the rules of SSBs when
interfaces are implemented as such SSBs define more than one reference.

Jersey will look up the EJB using the class name to derive the
portable JNDI name, and i think the reference obtained from JNDI does
not implement ContextResolver. Need to verify.

Paul.

On Apr 26, 2010, at 4:07 PM, Laird Nelson wrote:

> I have an EJB class that is annoted with the @Provider annotation,
> because it (deliberately) implements ContextProvider<Class>.
>
> When the classpath is scanned at deployment time, Jersey blows up with
> a ClassCastException:
>
> [#|2010-04-26T10:03:23.187-0400|INFO|glassfish3.0|
> com.sun.jersey.server.impl.ejb.EJBComponentProviderFactory|
> _ThreadID=26;_ThreadName=Thread-1;|Binding
> the EJB class com.jenzabar.ngp.constituent.ejb.ConstituentTypeBean to
> EJBManagedComponentProvider|#]
>
> [#|2010-04-26T10:03:23.265-0400|SEVERE|glassfish3.0|
> javax.enterprise.system.container.web.com.sun.enterprise.web|
> _ThreadID=26;_ThreadName=http-thread-pool-8080-(2);|WebModule[/ngp-
> war-test-1.0-SNAPSHOT]StandardWrapper.Throwable
> java.lang.ClassCastException
> at java.lang.Class.cast(Class.java:2990)
> at
> com
> .sun
> .jersey
> .core
> .spi.component.ProviderServices.getProviders(ProviderServices.java:
> 126)
> at
> com
> .sun
> .jersey
> .core
> .spi
> .factory.ContextResolverFactory.<init>(ContextResolverFactory.java:78)
> at
> com
> .sun
> .jersey
> .server
> .impl
> .application.WebApplicationImpl.initiate(WebApplicationImpl.java:804)
> at
> com
> .sun
> .jersey
> .server
> .impl
> .application.WebApplicationImpl.initiate(WebApplicationImpl.java:589)
> at
> com
> .sun
> .jersey
> .spi
> .container.servlet.ServletContainer.initiate(ServletContainer.java:
> 403)
> at com.sun.jersey.spi.container.servlet.ServletContainer
> $InternalWebComponent.initiate(ServletContainer.java:252)
> at
> com
> .sun
> .jersey.spi.container.servlet.WebComponent.load(WebComponent.java:550)
> at
> com
> .sun
> .jersey.spi.container.servlet.WebComponent.init(WebComponent.java:201)
> at
> com
> .sun
> .jersey
> .spi.container.servlet.ServletContainer.init(ServletContainer.java:
> 307)
> at
> com
> .sun
> .jersey
> .spi.container.servlet.ServletContainer.init(ServletContainer.java:
> 470)
> at javax.servlet.GenericServlet.init(GenericServlet.java:242)
> at
> org
> .apache
> .catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1428)
> at
> org
> .apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:
> 1073)
> at
> org
> .apache
> .catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
> 187)
> at
> org
> .apache
> .catalina.core.StandardContextValve.invoke(StandardContextValve.java:
> 188)
> at
> org
> .apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
> 641)
> at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
> at
> com
> .sun
> .enterprise
> .web
> .PESessionLockingStandardPipeline
> .invoke(PESessionLockingStandardPipeline.java:85)
> at
> org
> .apache
> .catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
> at
> org
> .apache
> .catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:332)
> at
> org
> .apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
> 233)
> at
> com
> .sun
> .enterprise
> .v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
> at
> com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:
> 791)
> at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:
> 693)
> at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
> at
> com
> .sun
> .grizzly
> .http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
> at
> com
> .sun
> .grizzly
> .DefaultProtocolChain
> .executeProtocolFilter(DefaultProtocolChain.java:135)
> at
> com
> .sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:
> 102)
> at
> com
> .sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:
> 88)
> at
> com
> .sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
> at
> com
> .sun
> .grizzly
> .ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
> at
> com
> .sun
> .grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
> at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
> at com.sun.grizzly.util.AbstractThreadPool
> $Worker.doWork(AbstractThreadPool.java:330)
> at com.sun.grizzly.util.AbstractThreadPool
> $Worker.run(AbstractThreadPool.java:309)
> at java.lang.Thread.run(Thread.java:619)
> |#]
>
> What can I do to work around this problem?
>
> Best,
> Laird
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>