Hi, I have a simple project where I have a POJO class 'A' annotated with
@Entity. I have also created a <class> tag for this in the persistence.xml
under META-INF of the webapp. Now when I am trying to do something like A a
= new A(); inside a public method of @Stateless EJB, I get the following
error:

SEVERE: Servlet.service() for servlet SomeServlet threw exception
javax.ejb.EJBException: The bean encountered a non-application exception;
nested exception is: 
        java.lang.NoClassDefFoundError: Could not initialize class
com.foo.entities.A
        at
org.apache.openejb.core.ivm.BaseEjbProxyHandler.convertException(BaseEjbProxyHandler.java:363)
        at
org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:283)
        at
com.foo.stateless.LogEvent$LocalBeanProxy.log(com/foo/stateless/LogEvent.java)
        at com.foo.servlets.SomeServlet.service(SomeServlet.java:32)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
        at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:489)
        at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)
        at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
        at
org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:467)
        at
org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:338)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:203)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
        at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
        at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
        at
org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:1780)
        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class
com.foo.entities.A
        at com.foo.stateless.LogEvent.log(LogEvent.java:19)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at
org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:181)
        at
org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:163)
        at org.apache.openejb.cdi.CdiInterceptor.invoke(CdiInterceptor.java:130)
        at 
org.apache.openejb.cdi.CdiInterceptor.access$000(CdiInterceptor.java:43)
        at org.apache.openejb.cdi.CdiInterceptor$1.call(CdiInterceptor.java:67)
        at
org.apache.openejb.cdi.CdiInterceptor.aroundInvoke(CdiInterceptor.java:73)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at
org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:181)
        at
org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:163)
        at
org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:180)
        at
org.apache.openejb.monitoring.StatsInterceptor.invoke(StatsInterceptor.java:99)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at
org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:181)
        at
org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:163)
        at
org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:138)
        at
org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:239)
        at
org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:191)
        at
org.apache.openejb.core.ivm.EjbObjectProxyHandler.synchronizedBusinessMethod(EjbObjectProxyHandler.java:256)
        at
org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:251)
        at
org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:85)
        at
org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:279)
        ... 22 more

Feb 13, 2013 2:35:02 AM org.apache.catalina.core.StandardHostValve custom
SEVERE: Exception Processing ErrorPage[errorCode=404, location=/404]
javax.ejb.EJBException: The bean encountered a non-application exception;
nested exception is: 
        java.lang.NoClassDefFoundError: Could not initialize class
com.foo.entities.A
        at
org.apache.openejb.core.ivm.BaseEjbProxyHandler.convertException(BaseEjbProxyHandler.java:363)
        at
org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:283)
        at
com.foo.stateless.LogEvent$LocalBeanProxy.log(com/foo/stateless/LogEvent.java)
        at com.foo.servlets.SomeServlet.service(SomeServlet.java:32)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
        at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:489)
        at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)
        at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
        at
org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:467)
        at
org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:338)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:203)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
        at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
        at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
        at
org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:1780)
        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class
com.foo.entities.A
        at com.foo.stateless.LogEvent.log(LogEvent.java:19)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at
org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:181)
        at
org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:163)
        at org.apache.openejb.cdi.CdiInterceptor.invoke(CdiInterceptor.java:130)
        at 
org.apache.openejb.cdi.CdiInterceptor.access$000(CdiInterceptor.java:43)
        at org.apache.openejb.cdi.CdiInterceptor$1.call(CdiInterceptor.java:67)
        at
org.apache.openejb.cdi.CdiInterceptor.aroundInvoke(CdiInterceptor.java:73)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at
org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:181)
        at
org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:163)
        at
org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:180)
        at
org.apache.openejb.monitoring.StatsInterceptor.invoke(StatsInterceptor.java:99)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at
org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:181)
        at
org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:163)
        at
org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:138)
        at
org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:239)
        at
org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:191)
        at
org.apache.openejb.core.ivm.EjbObjectProxyHandler.synchronizedBusinessMethod(EjbObjectProxyHandler.java:256)
        at
org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:251)
        at
org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:85)
        at
org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:279)
        ... 22 more
...
Here's what the persistence.xml looks like
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd";>
        <persistence-unit name="PU" transaction-type="JTA">
                <jta-data-source>DS-JTA</jta-data-source>
                <non-jta-data-source>DS-Non-JTA</non-jta-data-source>
                <class>com.foo.entities.A</class>
                 <properties>
            <property name="openjpa.jdbc.DBDictionary" value="mysql"/>
         </properties>
        </persistence-unit>
</persistence>
...
Finally the injection of EntityManager inside @Stateless bean named LogEvent
is done as follows...
@PersistenceContext(unitName="PU")
        private EntityManager em;

the line which triggers the error is as follows...
A a = new A();

I'm using apache-tomee-1.5.2-20130212.041100-67-plus [SNAPSHOT]
Thanks



--
View this message in context: 
http://openejb.979440.n4.nabble.com/Accessing-Entity-bean-in-Stateless-EJB-throws-NoClassDefFoundError-tp4660738.html
Sent from the OpenEJB User mailing list archive at Nabble.com.

Reply via email to