[
https://issues.apache.org/jira/browse/GERONIMO-3317?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
YunFeng Ma updated GERONIMO-3317:
---------------------------------
Attachment: GERONIMO-3317.patch
The JPA ClassTransformer is added by PersistenceUnitGBean, but
PersistenceUnitGBean is started after EjbModuleImplGBean which will load the
Entity Beans, so the Entity Beans can not be enhanced by ClassTransformer.
The attached patch sets PersistenceUnitGBean as the dependence of Module GBean
to make sure the ClassTransformer is installed first.
> "has not been enhanced" error when invoking an EJB 2.1 Entity Bean
> ------------------------------------------------------------------
>
> Key: GERONIMO-3317
> URL: https://issues.apache.org/jira/browse/GERONIMO-3317
> Project: Geronimo
> Issue Type: Bug
> Security Level: public(Regular issues)
> Components: OpenEJB
> Affects Versions: 2.0-M7
> Reporter: Song
> Attachments: GERONIMO-3317.patch
>
>
> My application could be deployed successfully.
> But when launching an Entity Bean, "has not been enhanced" error is thrown:
> 17:07:58,593 ERROR [OpenEJB] The bean instances business method encountered a
> system exception: The type "class openejb.gvtlibrary.EJBUser" has not been
> enhanced.
> <1.0.0-SNAPSHOT-SNAPSHOT fatal user error>
> org.apache.openjpa.persistence.ArgumentException: The type "class
> openejb.gvtlibrary.EJBUser" has not been enhanced.
> at
> org.apache.openjpa.meta.ClassMetaData.resolveMeta(ClassMetaData.java:1610)
> at
> org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1584)
> at
> org.apache.openjpa.meta.MetaDataRepository.processBuffer(MetaDataRepository.java:663)
> at
> org.apache.openjpa.meta.MetaDataRepository.resolveMeta(MetaDataRepository.java:563)
> at
> org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:488)
> at
> org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:290)
> at
> org.apache.openjpa.kernel.BrokerImpl.newObjectId(BrokerImpl.java:1089)
> at
> org.apache.openjpa.kernel.DelegatingBroker.newObjectId(DelegatingBroker.java:257)
> at
> org.apache.openjpa.persistence.EntityManagerImpl.find(EntityManagerImpl.java:348)
> at
> org.apache.geronimo.persistence.CMPEntityManagerTxScoped.find(CMPEntityManagerTxScoped.java:125)
> at
> org.apache.openejb.core.cmp.jpa.JpaCmpEngine.loadBean(JpaCmpEngine.java:171)
> at
> org.apache.openejb.core.cmp.CmpContainer.findByPrimaryKey(CmpContainer.java:687)
> at
> org.apache.openejb.core.cmp.CmpContainer.invoke(CmpContainer.java:284)
> at
> org.apache.openejb.core.entity.EntityEjbHomeHandler.findX(EntityEjbHomeHandler.java:57)
> at
> org.apache.openejb.core.ivm.EjbHomeProxyHandler._invoke(EjbHomeProxyHandler.java:160)
> at
> org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:230)
> at
> org.apache.openejb.util.proxy.Jdk13InvocationHandler.invoke(Jdk13InvocationHandler.java:49)
> at $Proxy51.findByPrimaryKey(Unknown Source)
> at javaUtility.EjbUtility.getUser(EjbUtility.java:105)
> at servlets.WelcomeServlet.doPost(WelcomeServlet.java:71)
> at servlets.GVTServlet.service(GVTServlet.java:89)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> 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:230)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
> at
> org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSubjectValve.java:56)
> at
> org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:351)
> at
> org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:47)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
> at
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
> at java.lang.Thread.run(Thread.java:801)
> org.apache.openejb.InvalidateReferenceException: java.rmi.RemoteException:
> The bean encountered a non-application exception.; nested exception is:
> <1.0.0-SNAPSHOT-SNAPSHOT fatal user error>
> org.apache.openjpa.persistence.ArgumentException: The type "class
> openejb.gvtlibrary.EJBUser" has not been enhanced.: The bean encountered a
> non-application exception.; nested exception is:
> <1.0.0-SNAPSHOT-SNAPSHOT fatal user error>
> org.apache.openjpa.persistence.ArgumentException: The type "class
> openejb.gvtlibrary.EJBUser" has not been enhanced.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.