Hello, My scenario is this:
I have a library with entities (as in @Entity objects) containing my domain model. I want to declare a container-managed persistence unit in a standalone WAR (not EAR), using that library (the persistence.xml must NOT be in the library, but the WAR). So, I proceed as follows (this is valid as far as I know, base on J2EE5 specs): 1) I have declared a data source in geronimo-web.xml and web.xml (see below for file contents). 2) I put my library (as a jar) in my WAR's WEB-INF/lib and added a WEB-INF/classes/META-INF/persistence.xml in the WAR (see below for file contents). Deployment after performing step (1) worked and I could see the data source registered in the console. Deployment after performing step (2) fails; from what I understand from the error (see below), geronimo claims the data-source from step (1) does not exist. I assume that geronimo tries to create the persistence context prior to registering the data source? (i.e. it processes persistence.xml prior to apply the configuration from web.xml and geronimo-web.xml). What do I need to configure this properly. My deployment descriptors and the error trace follow: persistence.xml ------------------------------------------------------------------------------------------------------------------------------------------------- <?xml version="1.0" encoding="UTF-8"?> <persistence 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_1_0.xsd" version="1.0"> <persistence-unit name="appPersistenceUnit" transaction-type="JTA"> <jta-data-source>jdbc/AppDataSource</jta-data-source> <jar-file>app-entities.jar</jar-file> </persistence-unit> </persistence> web.xml ------------------------------------------------------------------------------------------------------------------------------------------------- <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd" version="2.4"> <display-name>App</display-name> <!-- Unrelated Spring contextListener and Wicket filter configuration here have been supresed --> <resource-ref> <res-ref-name>jdbc/AppDataSource</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref> <!-- Ultimately I want to do this, but I can't get persistence.xml to work... <persistence-unit-ref> <persistence-unit-ref-name>persistence/appPersistenceUnit</persistence-unit-ref-name> <persistence-unit-name>appPersistenceUnit</persistence-unit-name> </persistence-unit-ref> --> </web-app> geronimo-web.xml ------------------------------------------------------------------------------------------------------------------------------------------------- <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1" xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.2" xmlns:sec="http://geronimo.apache.org/xml/ns/security-2.0" xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2"> <sys:environment> <sys:moduleId> <sys:groupId>app</sys:groupId> <sys:artifactId>app-frontend</sys:artifactId> <sys:version>0.0.1</sys:version> <sys:type>car</sys:type> </sys:moduleId> <sys:dependencies> <!-- Need the embedded Derby --> <sys:dependency> <sys:groupId>org.apache.geronimo.configs</sys:groupId> <sys:artifactId> system-database </sys:artifactId> </sys:dependency> </sys:dependencies> </sys:environment> <context-root>/app</context-root> <!-- Ultimately, I want to register the PU in JNDI, but persistence.xml does not work <naming:persistence-unit-ref> <naming:persistence-unit-ref-name>persistence/appPersistenceUnit</naming:persistence-unit-ref-name> <naming:persistence-unit-name>persistence/appPersistenceUnit</naming:persistence-unit-name> </naming:persistence-unit-ref> --> <naming:resource-ref> <naming:ref-name>jdbc/AppDataSource</naming:ref-name> <naming:resource-link>SystemDatasource</naming:resource-link> </naming:resource-ref> </web-app> __________________________________________________ Χρησιμοποιείτε Yahoo!; Βαρεθήκατε τα ενοχλητικά μηνύματα (spam); Το Yahoo! Mail διαθέτει την καλύτερη δυνατή προστασία κατά των ενοχλητικών μηνυμάτων http://mail.yahoo.gr