users@jersey.java.net

[Jersey] Tomcat 6 + Jersey + Weld (Seam 3)

From: raid3n <andrea.deruvo_at_hotmail.com>
Date: Wed, 9 Mar 2011 04:10:34 -0800 (PST)

Hi all and excuse my english.

I use Tomcat 6, Jersey. I want CDI implementation in Tomcat so I choose the
Weld Module from Seam 3. The reason is that I want inject the entity manager
into the jersey rest services.

I've implemented my "com.sun.jersey.spi.container.servlet.ServletContainer"
to support CDI as suggested in this post:
http://jersey.576304.n2.nabble.com/Weld-Jersey-Tomcat-td5959010.html
http://jersey.576304.n2.nabble.com/Weld-Jersey-Tomcat-td5959010.html

So I have these descriptors:
persistence.xml
<?xml version="1.0" encoding="UTF-8"?>

        
                java:/comp/env/jdbc/postgres
                entity.Form
        


web.xml
<?xml version="1.0" encoding="UTF-8"?>

  Prova3
  
    org.jboss.weld.environment.servlet.Listener
  
  
    JAX-RS Tools Generated - Do not modify
    JAX-RS Servlet
    cdi.TomcatCDIServlet
    
      com.sun.jersey.config.property.packages
      service
    
    1
  
  
    JAX-RS Servlet
    /s/*
  
  
    BeanManager
    javax.enterprise.inject.spi.BeanManager
     


context.xml
<?xml version="1.0" encoding="UTF-8"?>


        


        

        




And my basic classes for test are:
public class EMProducer {
        @Test
        @Produces
        @SeamManaged
        @PersistenceUnit(unitName="pu")
        EntityManagerFactory emf;
}

and jersey:
@RequestScoped
@Path("/hello")
public class Hello {

        @Inject
        @Test
        @PersistenceContext
        EntityManager em;

        @SuppressWarnings("unchecked")
        @GET
        @Produces(MediaType.APPLICATION_XML)
        public List getClichedMessage() {
                return em.createQuery("select e from MyEntity e").getResultList();
        }
}

MyEntity is JAXB annotated with @XmlRootElement.

And the errors...
[EL Info]: 2011-03-09 13:10:15.886--ServerSession(26414138)--EclipseLink,
version: Eclipse Persistence Services - 2.1.2.v20101206-r8635
[EL Info]: 2011-03-09
13:10:16.281--ServerSession(26414138)--file:/C:/Users/andrea/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/Prova3/WEB-INF/classes/_pu
login successful
9-mar-2011 13.10.16 com.sun.jersey.spi.container.ContainerResponse
mapMappableContainerException
GRAVE: The RuntimeException could not be mapped to a response, re-throwing
to the HTTP container
java.lang.RuntimeException: javax.naming.NamingException: Cannot create
resource instance
        at
org.jboss.seam.persistence.transaction.DefaultSeamTransaction.getSeamTransaction(DefaultSeamTransaction.java:153)
        at
org.jboss.seam.persistence.transaction.DefaultSeamTransaction.isActive(DefaultSeamTransaction.java:57)
        at
org.jboss.seam.persistence.ManagedPersistenceContextProxyHandler.joinTransaction(ManagedPersistenceContextProxyHandler.java:127)
        at
org.jboss.seam.persistence.ManagedPersistenceContextProxyHandler.invoke(ManagedPersistenceContextProxyHandler.java:115)
        at $Proxy28.createQuery(Unknown Source)
        at service.Hello.hello(Hello.java:46)
        at
service.org$jboss$weld$bean-flat-ManagedBean-class_service$Hello_$$_WeldClientProxy.hello(org$jboss$weld$bean-flat-ManagedBean-class_service$Hello_$$_WeldClientProxy.java)
        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
com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:167)
        at
com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:70)
        at
com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:279)
        at
com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:136)
        at
com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:86)
        at
com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:136)
        at
com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:74)
        at
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1347)
        at
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1279)
        at
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1229)
        at
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1219)
        at
com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:419)
        at
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)
        at
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:699)
        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.core.StandardHostValve.invoke(StandardHostValve.java:127)
        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:298)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:662)
Caused by: javax.naming.NamingException: Cannot create resource instance
        at
org.apache.naming.factory.TransactionFactory.getObjectInstance(TransactionFactory.java:113)
        at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:793)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
        at org.apache.naming.SelectorContext.lookup(SelectorContext.java:152)
        at javax.naming.InitialContext.lookup(InitialContext.java:392)
        at
org.jboss.seam.persistence.transaction.DefaultSeamTransaction.getUserTransaction(DefaultSeamTransaction.java:177)
        at
org.jboss.seam.persistence.transaction.DefaultSeamTransaction.createUTTransaction(DefaultSeamTransaction.java:169)
        at
org.jboss.seam.persistence.transaction.DefaultSeamTransaction.getSeamTransaction(DefaultSeamTransaction.java:134)
        ... 37 more
9-mar-2011 13.10.16 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet JAX-RS Servlet threw exception
java.lang.RuntimeException: javax.naming.NamingException: Cannot create
resource instance
        at
org.jboss.seam.persistence.transaction.DefaultSeamTransaction.getSeamTransaction(DefaultSeamTransaction.java:153)
        at
org.jboss.seam.persistence.transaction.DefaultSeamTransaction.isActive(DefaultSeamTransaction.java:57)
        at
org.jboss.seam.persistence.ManagedPersistenceContextProxyHandler.joinTransaction(ManagedPersistenceContextProxyHandler.java:127)
        at
org.jboss.seam.persistence.ManagedPersistenceContextProxyHandler.invoke(ManagedPersistenceContextProxyHandler.java:115)
        at $Proxy28.createQuery(Unknown Source)
        at service.Hello.hello(Hello.java:46)
        at
service.org$jboss$weld$bean-flat-ManagedBean-class_service$Hello_$$_WeldClientProxy.hello(org$jboss$weld$bean-flat-ManagedBean-class_service$Hello_$$_WeldClientProxy.java)
        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
com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:167)
        at
com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:70)
        at
com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:279)
        at
com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:136)
        at
com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:86)
        at
com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:136)
        at
com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:74)
        at
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1347)
        at
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1279)
        at
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1229)
        at
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1219)
        at
com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:419)
        at
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)
        at
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:699)
        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.core.StandardHostValve.invoke(StandardHostValve.java:127)
        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:298)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:662)
Caused by: javax.naming.NamingException: Cannot create resource instance
        at
org.apache.naming.factory.TransactionFactory.getObjectInstance(TransactionFactory.java:113)
        at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:793)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
        at org.apache.naming.SelectorContext.lookup(SelectorContext.java:152)
        at javax.naming.InitialContext.lookup(InitialContext.java:392)
        at
org.jboss.seam.persistence.transaction.DefaultSeamTransaction.getUserTransaction(DefaultSeamTransaction.java:177)
        at
org.jboss.seam.persistence.transaction.DefaultSeamTransaction.createUTTransaction(DefaultSeamTransaction.java:169)
        at
org.jboss.seam.persistence.transaction.DefaultSeamTransaction.getSeamTransaction(DefaultSeamTransaction.java:134)
        ... 37 more
9-mar-2011 13.10.16 org.jboss.weld.bean.ManagedBean destroy
GRAVE: WELD-000019 Error destroying an instance Managed Bean [class
service.Hello] with qualifiers [@Any @Default] of service.Hello_at_1dbe135


Suggestions? Thanks in advance.
Andrea


--
View this message in context: http://jersey.576304.n2.nabble.com/Tomcat-6-Jersey-Weld-Seam-3-tp6153390p6153390.html
Sent from the Jersey mailing list archive at Nabble.com.