users@glassfish.java.net

Re: JAX-RS on Glassfish 3.1: _at_EJB injection?

From: Paul Sandoz <Paul.Sandoz_at_Sun.COM>
Date: Wed, 16 Jun 2010 17:29:30 +0200

Hi,

I think i know what the difference is.

I was deploying using NBs which deploys the ear in expanded mode which
is equivalent to:

   ./asadmin deploy --force=true ~/Downloads/glassfish-bugs\ 3/
frobnicator/ear/target/gfdeploy/ljnelson_frobnicator-ear_ear_1.0-
SNAPSHOT/

  If i deploy the ear using:

   ./asadmin deploy --force=true ~/Downloads/glassfish-bugs\ 3/
frobnicator/ear/target/frobnicator-ear-1.0-SNAPSHOT.ear

then i can reproduce the same behavior as you observe.

So there appear to be a number of bugs around CDI/deployment and
scanning. Note that in this setup Jersey is relying on the servlet
container to tell it the classes are that are annotated with @Path.

Paul.

On Jun 16, 2010, at 5:12 PM, glassfish_at_javadesktop.org wrote:

> Hi, Paul; curiouser and curiouser.
>
> Deployment alone succeeds, or appears to, as you noted:
> [code]
> [#|2010-06-16T10:56:16.815-0400|WARNING|glassfish3.1|
> org.apache.catalina.connector.Request|
> _ThreadID=28;_ThreadName=Thread-1;|PWC4011: Unable to set request
> character encoding to UTF-8 from context , because request
> parameters have already been read, or ServletRequest.getReader() has
> already been called|#]
>
> [#|2010-06-16T10:56:17.167-0400|INFO|glassfish3.1|
> org.jboss.weld.Version|_ThreadID=28;_ThreadName=Thread-1;|
> WELD-000900 1.0.1 (SP3)|#]
>
> [#|2010-06-16T10:56:17.184-0400|INFO|glassfish3.1|
> org.hibernate.validator.engine.resolver.DefaultTraversableResolver|
> _ThreadID=28;_ThreadName=Thread-1;|Instantiated an instance of
> org.hibernate.validator.engine.resolver.JPATraversableResolver.|#]
>
> [#|2010-06-16T10:56:17.192-0400|INFO|glassfish3.1|
> javax.enterprise.system.container.ejb.com.sun.ejb.containers|
> _ThreadID=62;_ThreadName=Thread-1;|Portable JNDI names for EJB
> FrobnicatorBean : [java:global/frobnicator-ear-1.0-SNAPSHOT/
> frobnicator-ejb-1.0-SNAPSHOT/FrobnicatorBean!
> ljnelson.frobnicator.api.Frobnicator, java:global/frobnicator-
> ear-1.0-SNAPSHOT/frobnicator-ejb-1.0-SNAPSHOT/FrobnicatorBean]|#]
>
> [#|2010-06-16T10:56:17.544-0400|INFO|glassfish3.1|
> com
> .sun
> .jersey
> .server.impl.container.servlet.JerseyServletContainerInitializer|
> _ThreadID=28;_ThreadName=Thread-1;|Registering the Jersey servlet
> application, named ljnelson.frobnicator.war.Application, at the
> servlet mapping, /frobnication/*, with the Application class of the
> same name|#]
>
> [#|2010-06-16T10:56:17.552-0400|INFO|glassfish3.1|
> javax.enterprise.system.container.web.com.sun.enterprise.web|
> _ThreadID=62;_ThreadName=http-thread-pool-4848(3);|WEB0671: Loading
> application [frobnicator-ear-1.0-SNAPSHOT#frobnicator-war-1.0-
> SNAPSHOT.war] at [/frobnicator-war]|#]
>
> [#|2010-06-16T10:56:17.552-0400|INFO|glassfish3.1|
> javax.enterprise.system.container.web.com.sun.enterprise.web|
> _ThreadID=62;_ThreadName=Thread-1;|WEB0671: Loading application
> [frobnicator-ear-1.0-SNAPSHOT#frobnicator-war-1.0-SNAPSHOT.war] at [/
> frobnicator-war]|#]
>
> [#|2010-06-16T10:56:17.552-0400|INFO|glassfish3.1|
> javax.enterprise.system.container.web.com.sun.enterprise.web|
> _ThreadID=62;_ThreadName=http-thread-pool-4848(3);|WEB0671: Loading
> application [frobnicator-ear-1.0-SNAPSHOT#frobnicator-war-1.0-
> SNAPSHOT.war] at [/frobnicator-war]|#]
>
> [#|2010-06-16T10:56:17.575-0400|WARNING|glassfish3.1|
> javax.enterprise.system.tools.admin.org.glassfish.server|
> _ThreadID=74;_ThreadName=Thread-1;|Unable to get Application config
> for: frobnicator-ear-1.0-SNAPSHOT|#]
>
> [#|2010-06-16T10:56:17.594-0400|INFO|glassfish3.1|
> javax.enterprise.system.tools.admin.org.glassfish.deployment.admin|
> _ThreadID=62;_ThreadName=Thread-1;|frobnicator-ear-1.0-SNAPSHOT was
> successfully deployed in 672 milliseconds.|#]
> [/code]
>
> But actually hitting a Jersey-served URL gives me this:
>
> [code]
> [#|2010-06-16T10:57:49.511-0400|INFO|glassfish3.1|
> com.sun.jersey.server.impl.application.WebApplicationImpl|
> _ThreadID=35;_ThreadName=Thread-1;|Initiating Jersey application,
> version 'Jersey: 1.1.5 01/20/2010 04:04 PM'|#]
>
> [#|2010-06-16T10:57:49.513-0400|INFO|glassfish3.1|
> com.sun.jersey.server.impl.application.WebApplicationImpl|
> _ThreadID=35;_ThreadName=Thread-1;|Adding the following classes
> declared in META-INF/services/jersey-server-components to the
> resource configuration:
> class com.sun.jersey.multipart.impl.FormDataMultiPartDispatchProvider
> class com.sun.jersey.multipart.impl.MultiPartConfigProvider
> class com.sun.jersey.multipart.impl.MultiPartReader
> class com.sun.jersey.multipart.impl.MultiPartWriter|#]
>
> [#|2010-06-16T10:57:49.518-0400|INFO|glassfish3.1|
> com.sun.jersey.server.impl.application.DeferredResourceConfig|
> _ThreadID=35;_ThreadName=Thread-1;|Instantiating the Application
> class, named ljnelson.frobnicator.war.Application. The following
> root resource and provider classes are registered: []|#]
>
> [#|2010-06-16T10:57:49.683-0400|SEVERE|glassfish3.1|
> com.sun.jersey.server.impl.application.WebApplicationImpl|
> _ThreadID=35;_ThreadName=Thread-1;|The ResourceConfig instance does
> not contain any root resource classes.|#]
>
> [#|2010-06-16T10:57:49.684-0400|SEVERE|glassfish3.1|
> javax.enterprise.system.container.web.com.sun.enterprise.web|
> _ThreadID=102;_ThreadName=http-thread-pool-8080(3);|WebModule[/
> frobnicator-war]StandardWrapper.Throwable
> com.sun.jersey.api.container.ContainerException: The ResourceConfig
> instance does not contain any root resource classes.
> at
> com
> .sun
> .jersey
> .server
> .impl
> .application
> .WebApplicationImpl.processRootResources(WebApplicationImpl.java:1064)
> at
> com
> .sun
> .jersey
> .server
> .impl
> .application.WebApplicationImpl.initiate(WebApplicationImpl.java:912)
> 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:240)
> at
> org
> .apache
> .catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1423)
> at
> org
> .apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:
> 1068)
> at
> org
> .apache
> .catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
> 185)
> at
> org
> .apache
> .catalina.core.StandardContextValve.invoke(StandardContextValve.java:
> 171)
> at
> org
> .apache
> .catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:651)
> at
> org
> .apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
> 591)
> at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
> at
> com
> .sun
> .enterprise
> .web
> .PESessionLockingStandardPipeline
> .invoke(PESessionLockingStandardPipeline.java:87)
> at
> org
> .apache
> .catalina.core.StandardHostValve.invoke(StandardHostValve.java:158)
> at
> org
> .apache
> .catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:321)
> at
> org
> .apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
> 222)
> at
> com
> .sun
> .enterprise
> .v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
> at
> com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:
> 802)
> at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:
> 705)
> at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:986)
> at
> com
> .sun
> .grizzly
> .http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:178)
> 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:526)
> at com.sun.grizzly.util.AbstractThreadPool
> $Worker.run(AbstractThreadPool.java:507)
> at java.lang.Thread.run(Thread.java:637)
> |#]
> [/code]
>
> To cause this to happen I went to http://localhost:8080/frobnicator-war/frobnication/frobnicator
> .
>
> Best,
> Laird
> [Message sent by forum member 'ljnelson']
>
> http://forums.java.net/jive/thread.jspa?messageID=474515
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>