[ https://issues.apache.org/jira/browse/GERONIMO-4468?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12665079#action_12665079 ]
Janko Heilgeist commented on GERONIMO-4468: ------------------------------------------- I think "could only be in the lib folder or defined as a module" is to strict. The location of a jar-file can be anywhere in the EAR as long as it is on the classpath of the persistence unit (PU). What about jar files that are referenced with a {{Class-Path:}} entry in the PU's {{MANIFEST.MF}}? I expect that all the ways that a class could possibly end up on a PU's classpath are already considered when the runtime classpath of a PU is determined. If I understand David correctly, then it is sufficient to use the copy of the PU's runtime classpath as it is already done. > <jar-file> elements are interpreted relatively to EAR root > ---------------------------------------------------------- > > Key: GERONIMO-4468 > URL: https://issues.apache.org/jira/browse/GERONIMO-4468 > Project: Geronimo > Issue Type: Bug > Security Level: public(Regular issues) > Affects Versions: 2.1.3 > Reporter: Janko Heilgeist > Assignee: Ivan > Attachments: Geronimo-4468-01.patch, Geronimo-4468.patch, > geronimo-jarfile.tar.gz, my-ear-1.0-SNAPSHOT.ear > > > The <jar-file> elements in a persistence.xml are wrongly interpreted as > relative to the EAR's root. > EJB 3.0 persistence spec, section 6.2: > {quote} > [...] A persistence unit is defined by a persistence.xml file. The jar file > or directory whose META-INF directory contains the persistence.xml file is > termed the root of the persistence unit. [...] > {quote} > EJB 3.0 persistence spec, section 6.2: > {quote} > One or more JAR files may be specified using the jar-file elements [...] Such > JAR files are specified relative to the root of the persistence unit [...]. > {quote} > The attached EAR is correctly verified by the Glassfish verifier. Deploying > it on Geronimo 2.1.3 or 2.2-SNAPSHOT results in a successful deployment, > while on the console OpenJPA throws exceptions because it tries to resolve > the jar-file paths relative to the EAR's root: > {quote} > <openjpa-1.0.3-r420667:677674 nonfatal general error> > org.apache.openjpa.persistence.PersistenceException: > $HOME/geronimo-tomcat6-javaee5-2.1.3/repository/com/heilgeist/testcase/geronimo/jarfile/my-ear/1.0-SNAPSHOT/my-ear-1.0-SNAPSHOT.ear/my-entities1-1.0-SNAPSHOT.jar > (No such file or directory) > <openjpa-1.2.0-r422266:683325 nonfatal general error> > org.apache.openjpa.persistence.PersistenceException: > $HOME/geronimo-tomcat6-javaee5-2.2-SNAPSHOT/repository/com/heilgeist/testcase/geronimo/jarfile/my-ear/1.0-SNAPSHOT/my-entities2-1.0-SNAPSHOT.jar > (No such file or directory) > {quote} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.