Skip to content

Kundera + Jave EE (CDI) + JBoss 7.2 = Persistence Unit not found. #534

@dtraverso

Description

@dtraverso

Hello,

We are encountering an issue that appears to be specific to deployment on JBoss 7.x (7.2 used in example). I have uploaded a sample Java EE 6 webapp to a public BitBucket git repo to exhibit the erroneous behavior.

KunderaJbossCDI sample webapp Java EE stack:

  • JPA Provided by Kundera (Cassandra)
  • CDI container provided
  • JAX-RS Jersey provided

Prereqs:

  • local Cassandra DB (we used 2.0.5)
  • Java7
  • Maven
  • JBoss 7.2, Glassfish 4 (to see example of correct behavior)

Steps to reproduce:

  1. Acquire source @ https://bitbucket.org/d_traverso/kunderajbosscdi
  2. Use Maven to build source & produce WAR
  3. Deploy webapp WAR to JBoss 7.2
  4. Verify app greeting page @ http://localhost:8080/KunderaJbossCDI/
  5. Make HTTP GET request @ http://localhost:8080/KunderaJbossCDI/services/students
  6. Observe server error stack.

If you repeat these steps, but substitute JBoss 7.2 with GlassFish V4, no errors are encountered.

Because the CDI beans are @RequestScoped, the app should deploy without incident, but produce errors upon making a request.

Also, I am aware that there is a sample Kundera JBoss deployment app, however that sample uses SpringFramework. The issue here is Kundera in conjunction with Java EE APIs (specifically CDI / weld), when deployed to JBoss 7.x.

Error Stack trace:

11:50:23,835 SEVERE com.sun.jersey.spi.container.ContainerResponse The RuntimeException could not be mapped to a response, re-throwing to the HTTP container: org.jboss.msc.service.ServiceNotFoundException: Service service jboss.persistenceunit."KunderaJbossCDI-1.0-SNAPSHOT.war#cassandra_pu" not found
at org.jboss.msc.service.ServiceContainerImpl.getRequiredService(ServiceContainerImpl.java:448)
at org.jboss.as.weld.services.bootstrap.WeldJpaInjectionServices.resolvePersistenceUnit(WeldJpaInjectionServices.java:81) [jboss-as-weld-7.2.0.Final.jar:7.2.0.Final]
at org.jboss.weld.util.Beans.injectEEFields(Beans.java:691) [weld-core-1.1.10.Final.jar:2012-10-12 10:00]
at org.jboss.weld.bean.ManagedBean$ManagedBeanInjectionTarget$1$1.proceed(ManagedBean.java:160) [weld-core-1.1.10.Final.jar:2012-10-12 10:00]
at org.jboss.weld.injection.InjectionContextImpl.run(InjectionContextImpl.java:48) [weld-core-1.1.10.Final.jar:2012-10-12 10:00]
at org.jboss.weld.bean.ManagedBean$ManagedBeanInjectionTarget$1.work(ManagedBean.java:157) [weld-core-1.1.10.Final.jar:2012-10-12 10:00]
at org.jboss.weld.bean.ManagedBean$FixInjectionPoint.run(ManagedBean.java:131) [weld-core-1.1.10.Final.jar:2012-10-12 10:00]
at org.jboss.weld.bean.ManagedBean$ManagedBeanInjectionTarget.inject(ManagedBean.java:153) [weld-core-1.1.10.Final.jar:2012-10-12 10:00]
at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:293) [weld-core-1.1.10.Final.jar:2012-10-12 10:00]
at org.jboss.weld.context.unbound.DependentContextImpl.get(DependentContextImpl.java:68) [weld-core-1.1.10.Final.jar:2012-10-12 10:00]
at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:608) [weld-core-1.1.10.Final.jar:2012-10-12 10:00]
at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:674) [weld-core-1.1.10.Final.jar:2012-10-12 10:00]
at org.jboss.weld.injection.FieldInjectionPoint.inject(FieldInjectionPoint.java:136) [weld-core-1.1.10.Final.jar:2012-10-12 10:00]
at org.jboss.weld.util.Beans.injectBoundFields(Beans.java:763) [weld-core-1.1.10.Final.jar:2012-10-12 10:00]
at org.jboss.weld.util.Beans.injectFieldsAndInitializers(Beans.java:772) [weld-core-1.1.10.Final.jar:2012-10-12 10:00]
at org.jboss.weld.bean.ManagedBean$ManagedBeanInjectionTarget$1$1.proceed(ManagedBean.java:161) [weld-core-1.1.10.Final.jar:2012-10-12 10:00]
at org.jboss.weld.injection.InjectionContextImpl.run(InjectionContextImpl.java:48) [weld-core-1.1.10.Final.jar:2012-10-12 10:00]
at org.jboss.weld.bean.ManagedBean$ManagedBeanInjectionTarget$1.work(ManagedBean.java:157) [weld-core-1.1.10.Final.jar:2012-10-12 10:00]
at org.jboss.weld.bean.ManagedBean$FixInjectionPoint.run(ManagedBean.java:131) [weld-core-1.1.10.Final.jar:2012-10-12 10:00]
at org.jboss.weld.bean.ManagedBean$ManagedBeanInjectionTarget.inject(ManagedBean.java:153) [weld-core-1.1.10.Final.jar:2012-10-12 10:00]
at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:293) [weld-core-1.1.10.Final.jar:2012-10-12 10:00]
at org.jboss.weld.context.AbstractContext.get(AbstractContext.java:103) [weld-core-1.1.10.Final.jar:2012-10-12 10:00]
at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:90) [weld-core-1.1.10.Final.jar:2012-10-12 10:00]
at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:79) [weld-core-1.1.10.Final.jar:2012-10-12 10:00]
at com.umbrella.webapp.ws.Students$Proxy$_$$WeldClientProxy.getDefaultStudent(Students$Proxy$$$_WeldClientProxy.java) [classes:]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_25]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_25]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_25]
at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_25]
at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60) [jersey-server-1.18.jar:1.18]
at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185) [jersey-server-1.18.jar:1.18]
at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75) [jersey-server-1.18.jar:1.18]
at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302) [jersey-server-1.18.jar:1.18]
at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) [jersey-server-1.18.jar:1.18]
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147) [jersey-server-1.18.jar:1.18]
at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84) [jersey-server-1.18.jar:1.18]
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1542) [jersey-server-1.18.jar:1.18]
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1473) [jersey-server-1.18.jar:1.18]
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419) [jersey-server-1.18.jar:1.18]
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409) [jersey-server-1.18.jar:1.18]
at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409) [jersey-servlet-1.18.jar:1.18]
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:540) [jersey-servlet-1.18.jar:1.18]
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:715) [jersey-servlet-1.18.jar:1.18]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.2.Final.jar:1.0.2.Final]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.2.0.Final.jar:7.2.0.Final]
at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.2.0.Final.jar:7.2.0.Final]
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) [jboss-as-web-7.2.0.Final.jar:7.2.0.Final]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:920) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25]

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions