[jboss-jira] [JBoss JIRA] Commented: (JBAS-9155) jboss processes only one persistence.xml file per war file
Vincent A (JIRA)
jira-events at lists.jboss.org
Tue Mar 29 12:50:37 EDT 2011
[ https://issues.jboss.org/browse/JBAS-9155?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12592477#comment-12592477 ]
Vincent A commented on JBAS-9155:
---------------------------------
Hi Scott,
I'd be happy to write a test case if you point me in the right direction.
I ran a quick test on AS 7 Beta1; both perstistence.xml are read:
{code}
22:11:54,212 INFO [org.jboss.jpa] (MSC service thread 1-4) read persistence.xml for pu1
22:11:54,213 INFO [org.jboss.jpa] (MSC service thread 1-4) read persistence.xml for pu2
{code}
I'm not sure they're both started though.
-vincent
> jboss processes only one persistence.xml file per war file
> -----------------------------------------------------------
>
> Key: JBAS-9155
> URL: https://issues.jboss.org/browse/JBAS-9155
> Project: JBoss Application Server
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: JPA / Hibernate
> Affects Versions: 6.0.0.Final
> Reporter: Vincent A
> Assignee: Scott Marlow
> Labels: deployment, jboss, jpa, persistence, war
>
> If a war file contains several Persistence Archive jars, JBoss starts only the persitence unit(s) defined in the first jar it scans, ignoring the remaining ones.
> For instance, given the following war file:
> {code}
> my-war
> +-- WEB-INF
> +-- lib
> +-- pu1.jar
> +-- META-INF
> + persistence.xml // <persistence-unit name="pu1" >...</persistence-unit>
> +-- pu2.jar
> +-- META-INF
> + persistence.xml // <persistence-unit name="pu2" >...</persistence-unit>}}
> {code}
> Jboss will only starts the pu1 persistence unit.
> And if the war file has the following structure:
> {code}
> my-war
> +-- WEB-INF
> +-- classes
> +-- META-INF
> + persistence.xml // <persistence-unit name="pu0" >...</persistence-unit>
> +-- lib
> +-- pu1.jar
> +-- META-INF
> + persistence.xml // <persistence-unit name="pu1" >...</persistence-unit>
> +-- pu2.jar
> +-- META-INF
> + persistence.xml // <persistence-unit name="pu2" >...</persistence-unit>
> {code}
> Jboss starts pu0, and skips the PU's defined in pu1.jar and pu2.jar.
> This behaviour is non-compliant. Section 6.2 of the spec states that:
> {quote}
> A persistence unit may be packaged within one or more jar files
> contained within a WAR or EAR, as a set of classes within an
> EJB-JAR file or in the WAR classes directory, or as a combination
> of these as defined below.
> {quote}
> [...]
> {quote}
> It is not required that an EJB-JAR or WAR containing a persistence
> unit be packaged in an EAR unless the persistence unit contains
> persistence classes in addition to those contained in the EJB-JAR
> or WAR.
> {quote}
> And from section 7:
> {quote}
> 7.1.1 Responsibilities of the Container
> At deployment time the container is responsible for scanning the
> locations specified in Section 6.2 and discovering the persistence.xml
> files and processing them.
> When the container finds a persistence.xml file, it processes the
> persistence unit definitions that it contains.
> {quote}
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list