>PROBLEM
Creating a persistence.xml file having two persistence units caused the following Wildfly's error message:
Caused by: java.lang.IllegalArgumentException: WFLYJPA0061: Persistence unitName was not specified and there are 2 persistence unit definitions in application deployment deployment "todos.war". Either change the application deployment to have only one persistence unit definition or specify the unitName for each reference to a persistence unit.
The persistence.xml configuration used was:
<?xml version="1.0" encoding="UTF-8"?> <persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"> <persistence-unit name="primary"> <jta-data-source>java:jboss/datasources/TasksJsfQuickstartDS</jta-data-source> <properties> <!-- Properties for Hibernate --> <property name="hibernate.hbm2ddl.auto" value="create-drop" /> <property name="hibernate.show_sql" value="false" /> </properties> </persistence-unit> <persistence-unit name="pgTestoneDS"> <jta-data-source>java:jboss/datasources/pgTestoneDS</jta-data-source> <properties> <!-- <property name="hibernate.hbm2ddl.auto" value="create-drop" /> --> <!-- <property name="hibernate.show_sql" value="false" /> --> </properties> </persistence-unit> </persistence>
>SOLUTION
After some failures, I've decided to repeat the same configuration but doing the things in a different order.
The following order was successful:
1. Refactor the code that concerns the primary persistent-unit (or the the initial persistent-unit, whatever the name it has).
2. Create a qualifier to this first perstent-unit.
3. Refactor the dao layer in order to apply the its qualifier where the entity maneger is injected.
4. Recompile the project and perfome a full deploy.
5. Start the server and test.
6. Stop the server
7. If not successful, fix the code revising from step 1.
8. if successful, add the second persistent-unit to persistence.xml file.
9. Create the database manager class, its qualifier, the entities and dao layer always using the respective qualifier for the second persistent-unit to differ from the initial code implemented for the first persistent-unit.
10. Recompile the project and perfome a full deploy.
11. Start the server and test.
>WHAT NOT TO DO
To get more details and source code, point to WILDFLY/JBOSS: WFLYJPA0061: Persistence unitName was not specified and double persistence unit definitions
>ENV
Windows 10
Wildfly 18
JEE/CDI/JPA
No comments:
Post a Comment