geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jay D. McHugh (JIRA)" <j...@apache.org>
Subject [jira] Commented: (GERONIMO-3017) Web Apps (WAR files) that directly contain JPA entities cannot be deployed
Date Thu, 29 Mar 2007 02:27:25 GMT

    [ https://issues.apache.org/jira/browse/GERONIMO-3017?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12485049
] 

Jay D. McHugh commented on GERONIMO-3017:
-----------------------------------------

Even though the persistence.xml file is found and appears to be getting parsed, the entity
classes do not seem to be getting properly processed.

They are counted and the geronimo log indicates that the classes are being enhanced - but:
When an entity manager tries to actually use them, they report that they have never been enhanced.

<snippet of log at deploy time>

location: file:/opt/geronimo-tomcat6-jee5-2.0-SNAPSHOT/repository/palm/trees/1.1/trees-1.1.war/WEB-INF/classes/META-INF/persistence.xml
base:     file:/opt/geronimo-tomcat6-jee5-2.0-SNAPSHOT/repository/palm/trees/1.1/trees-1.1.war/
base.len: 85
pos:      0
endPos:   85
relative should be location(85, 85)
13  TRACE  [RMI TCP Connection(16)-127.0.0.1] openjpa.Runtime - Setting the following properties
from "?" into configuration: {openjpa.DataCache=false, openjpa.jdbc.DBDictionary=mysql(SupportsSubselect=true),
openjpa.FetchBatchSize=0, openjpa.ConnectionUserName=plcData, openjpa.Optimistic=true, openjpa.ConnectionPassword=plcPassword,
openjpa.MetaDataFactory=Types=com.pubint.ejb.entity.Attrib;com.pubint.ejb.entity.AttribValue;com.pubint.ejb.entity.Component;com.pubint.ejb.entity.ComponentClass;com.pubint.ejb.entity.Customer;com.pubint.ejb.entity.Generic;com.pubint.ejb.entity.GenericComponent;com.pubint.ejb.entity.GenericDetail;com.pubint.ejb.entity.Option;com.pubint.ejb.entity.OptionDetail;com.pubint.ejb.entity.ProductCategory;com.pubint.ejb.entity.ProductLine;com.pubint.ejb.entity.ProductGroup;com.pubint.ejb.entity.Project;com.pubint.ejb.entity.ProjectDetail;com.pubint.ejb.entity.SysConfig;com.pubint.ejb.entity.User;com.pubint.ejb.entity.Vendor;com.pubint.ejb.entity.XAttribValue;com.pubint.ejb.entity.XCatLine;com.pubint.ejb.entity.XClassAttrib;com.pubint.ejb.entity.XCompAttrib;com.pubint.ejb.entity.XGCompAttrib;com.pubint.ejb.entity.XGenericDetail;com.pubint.ejb.entity.XLineGroup;com.pubint.ejb.entity.XOptionDetail;com.pubint.ejb.entity.XProjCustomer;com.pubint.ejb.entity.XProjDetail;com.pubint.ejb.entity.XScheduleDetail;com.pubint.ejb.entity.XVendContact,
javax.persistence.provider=org.apache.openjpa.persistence.PersistenceProviderImpl, openjpa.ConnectionURL=jdbc:mysql:/localhost:3306/plc,
openjpa.TransactionMode=managed, openjpa.RestoreState=all, openjpa.ClassResolver=org.apache.openjpa.persistence.PersistenceUnitInfoImpl$ClassResolverImpl@891e7e,
openjpa.OrphanedKeyAction=log, openjpa.NontransactionalRead=true, openjpa.Log=DefaultLevel=TRACE,
openjpa.AutoDetach=close, openjpa.DetachState=all, openjpa.Multithreaded=true, openjpa.ConnectionDriverName=com.mysql.jdbc.Driver,
openjpa.MaxFetchDepth=1}
1450  INFO   [RMI TCP Connection(16)-127.0.0.1] openjpa.MetaData - Found 30 classes with metadata
in 1183 milliseconds.
0  TRACE  [RMI TCP Connection(16)-127.0.0.1] openjpa.Runtime - Setting the following properties
from "?" into configuration: {openjpa.DataCache=false, openjpa.jdbc.DBDictionary=mysql(SupportsSubselect=true),
openjpa.FetchBatchSize=0, openjpa.BrokerFactory=jdbc, openjpa.ConnectionUserName=user, openjpa.Optimistic=true,
openjpa.ConnectionPassword=password, openjpa.MetaDataFactory=Types=com.pubint.ejb.entity.Attrib;com.pubint.ejb.entity.AttribValue;com.pubint.ejb.entity.Component;com.pubint.ejb.entity.ComponentClass;com.pubint.ejb.entity.Customer;com.pubint.ejb.entity.Generic;com.pubint.ejb.entity.GenericComponent;com.pubint.ejb.entity.GenericDetail;com.pubint.ejb.entity.Option;com.pubint.ejb.entity.OptionDetail;com.pubint.ejb.entity.ProductCategory;com.pubint.ejb.entity.ProductLine;com.pubint.ejb.entity.ProductGroup;com.pubint.ejb.entity.Project;com.pubint.ejb.entity.ProjectDetail;com.pubint.ejb.entity.SysConfig;com.pubint.ejb.entity.User;com.pubint.ejb.entity.Vendor;com.pubint.ejb.entity.XAttribValue;com.pubint.ejb.entity.XCatLine;com.pubint.ejb.entity.XClassAttrib;com.pubint.ejb.entity.XCompAttrib;com.pubint.ejb.entity.XGCompAttrib;com.pubint.ejb.entity.XGenericDetail;com.pubint.ejb.entity.XLineGroup;com.pubint.ejb.entity.XOptionDetail;com.pubint.ejb.entity.XProjCustomer;com.pubint.ejb.entity.XProjDetail;com.pubint.ejb.entity.XScheduleDetail;com.pubint.ejb.entity.XVendContact,
javax.persistence.provider=org.apache.openjpa.persistence.PersistenceProviderImpl, openjpa.ConnectionURL=jdbc:mysql:/localhost:3306/plc,
openjpa.TransactionMode=managed, openjpa.RestoreState=all, openjpa.ClassResolver=org.apache.openjpa.persistence.PersistenceUnitInfoImpl$ClassResolverImpl@891e7e,
openjpa.OrphanedKeyAction=log, openjpa.NontransactionalRead=true, openjpa.Log=DefaultLevel=TRACE,
openjpa.AutoDetach=close, openjpa.DetachState=all, openjpa.Multithreaded=true, openjpa.ConnectionDriverName=com.mysql.jdbc.Driver,
openjpa.MaxFetchDepth=1}
</snippet of log at deploy time>

<snippet of log when a servlet containing an entity manager is loaded>
6247  TRACE  [http-0.0.0.0-8080-1] openjpa.Enhance - "com/pubint/ejb/entity/Project" requires
runtime enhancement: true
56514  TRACE  [http-0.0.0.0-8080-1] openjpa.MetaData - Loading metadata for "class com.pubint.ejb.entity.Project"
under mode "[META][QUERY]".
56514  INFO   [http-0.0.0.0-8080-1] openjpa.MetaData - Parsing class "com.pubint.ejb.entity.Project".
56515  TRACE  [http-0.0.0.0-8080-1] openjpa.Enhance - Enhancing type "class com.pubint.ejb.entity.Project".
56623  WARN   [http-0.0.0.0-8080-1] openjpa.Enhance - Type "class com.pubint.ejb.entity.Project"
has no metadata; enhancing as persistence aware. If you intended for "class com.pubint.ejb.entity.Project"
to be persistence-capable, then this means that OpenJPA could not find any metadata for "class
com.pubint.ejb.entity.Project". This can happen if the directory containing your metadata
is not in your CLASSPATH, or if your metadata files are not named properly. See the documentation
on metadata placement for more information.
</snippet of log when a servlet containing an entity manager is loaded>

<snippet of log when the servlet attempts to issue a query against the entity manager>
7476  TRACE  [http-0.0.0.0-8080-1] openjpa.MetaData - Loading metadata for "class com.pubint.ejb.entity.Project"
under mode "[META][QUERY]".
7655  INFO   [http-0.0.0.0-8080-1] openjpa.MetaData - Parsing class "com.pubint.ejb.entity.Project".
7656  INFO   [http-0.0.0.0-8080-1] openjpa.MetaData - Parsing package "com.pubint.ejb.entity.Project".
7897  TRACE  [http-0.0.0.0-8080-1] openjpa.MetaData - Generating default metadata for type
"com.pubint.ejb.entity.Project".
7897  TRACE  [http-0.0.0.0-8080-1] openjpa.MetaData - Using reflection for metadata generation.
8155  TRACE  [http-0.0.0.0-8080-1] openjpa.MetaData - Set persistence-capable superclass of
"com.pubint.ejb.entity.Project" to "null".
8156  TRACE  [http-0.0.0.0-8080-1] openjpa.MetaData - Resolving metadata for "com.pubint.ejb.entity.Project@1234028".
21:06:38,579 ERROR [[Project]] Servlet.service() for servlet Project threw exception
<4|true|0.9.6-incubating> org.apache.openjpa.persistence.ArgumentException: The type
"class com.pubint.ejb.entity.Project" has not been enhanced.
        at org.apache.openjpa.meta.ClassMetaData.resolveMeta(ClassMetaData.java:1590)
        at org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1564)
        at org.apache.openjpa.meta.MetaDataRepository.processBuffer(MetaDataRepository.java:654)
        at org.apache.openjpa.meta.MetaDataRepository.resolveMeta(MetaDataRepository.java:554)
        at org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:479)
        at org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:283)
        at org.apache.openjpa.kernel.BrokerImpl.newObjectId(BrokerImpl.java:1078)
        at org.apache.openjpa.kernel.DelegatingBroker.newObjectId(DelegatingBroker.java:254)
        at org.apache.openjpa.persistence.EntityManagerImpl.find(EntityManagerImpl.java:319)
        at com.pubint.ui.ProjectUI.processXML(ProjectUI.java:529)
        at com.pubint.ui.ProjectUI.doProcess(ProjectUI.java:605)
        at com.pubint.ui.ProjectUI.doPost(ProjectUI.java:624)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
        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:228)
        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:324)
        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:543)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
        at java.lang.Thread.run(Thread.java:595)
</snippet of log when the servlet attempts to issue a query against the entity manager>

> Web Apps (WAR files) that directly contain JPA entities cannot be deployed
> --------------------------------------------------------------------------
>
>                 Key: GERONIMO-3017
>                 URL: https://issues.apache.org/jira/browse/GERONIMO-3017
>             Project: Geronimo
>          Issue Type: Bug
>      Security Level: public(Regular issues) 
>          Components: persistence
>    Affects Versions: 2.0-M5
>            Reporter: Jay D. McHugh
>         Attachments: geronimo-jira-3017.patch
>
>
> There is still a find and parse problem with persistence.xml in war files.
> It seems to work if you have your jpa entities in a jar file.
> But, if you have a WEB-INF/lib/META-INF/persistence.xml file, it finds it and dies with
a substring error.
> I have not tested to see if this is a problem for WAR files contained in an EAR.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message