ich das Folgeproblem habe:Maven nicht exportieren persistence.xml (PersistenceException: Nein Persistence Provider für EntityManager)
ich eine Anwendung in drei Schichten unterteilt erstellt habe, jede Schicht sein eigenes Maven Projekt hat:
· Persistenz-Schicht hat nur Entitäten und DAO-Klassen
· Domain-Schicht die bussiness Klassen und WebServices hat
· UI-Ebene
das Web hatJede Schicht mit Maven verwaltet wird, und Domain hängt von Persistenz-Schicht
Wenn ich die Persistenz-Schicht laufen, alles gut funktioniert, wie es sollte, (Lauf JUnit-Test)
Aber wenn ich hinzufügen, die Abhängigkeit in Domänenebene kann nicht ausgeführt werden, wenn eine PersistenceException ausgelöst wird. Es scheint, als ob maven die Persistenz nicht in das Domänenprojekt exportiert.
Dies ist die POM für Persistence Schicht:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>gamerscreed.rocketstats</groupId>
<artifactId>RocketStatsCore</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>RocketStatsCore</name>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.40</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.3.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.3.0.Final</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>
<resources>
<resource>
<directory>src</directory>
<includes>
<include>META-INF/persistence.xml</include>
</includes>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
Und dies ist die pom für Domain-Schicht:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>gamerscreed.rocketstats</groupId>
<artifactId>RocketStatsDomain</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>RocketStatsDomain</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<relativePath />
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>gamerscreed.rocketstats</groupId>
<artifactId>RocketStatsCore</artifactId>
</dependency>
<dependency>
<groupId>gamerscreed.profiler</groupId>
<artifactId>GamersCreedShared</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>gamerscreed.rocketstats</groupId>
<artifactId>RocketStatsCore</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
</dependencyManagement>
Und hier ist die Ausnahme ausgelöst:
org.springframework.beans.factory.BeanCreationException: Fehler beim Erstellen von Bean mit dem Namen 'playerBusinessLayer' in der Datei [C: \ Users \ Xelit3 \ Documents \ Eclipse-Arbeitsbereich \ git \ GamersCreed \ RocketStatsDomain \ target \ classes \ gamerscreed \ rocketstats \ domain \ implementation \ PlayerBusinessLayer.class]: Instanziierung von Bean fehlgeschlagen; verschachtelte Ausnahme ist org.springframework.beans.BeanInstantiationException: Fehler beim instantiieren [gamerscreed.rocketstats.domain.implementation.PlayerBusinessLayer]: Konstruktor hat Ausnahme ausgelöst; verschachtelte Ausnahme ist javax.persistence.PersistenceException: Nein Persistence Provider für EntityManager RocketStats namens
Ich sehe habe this thread aber wir haben hier nichts half mir:
Vielen Dank im Voraus
EDIT: Hinzugefügt persistence.xml :
<?xml version="1.0" encoding="UTF-8" ?> <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_2_0.xsd" version="2.0" xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="RocketStats" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<class>gamerscreed.rocketstats.model.dto.Match</class>
<class>gamerscreed.rocketstats.model.dto.MatchResultPlayer</class>
<class>gamerscreed.rocketstats.model.dto.MatchResultPlayerPK</class>
<class>gamerscreed.rocketstats.model.dto.MatchType</class>
<class>gamerscreed.rocketstats.model.dto.Player</class>
<class>gamerscreed.rocketstats.model.dto.Result</class>
<class>gamerscreed.rocketstats.model.dto.Role</class>
<class>gamerscreed.rocketstats.model.dto.Team</class>
<class>gamerscreed.rocketstats.model.dto.Tournament</class>
<validation-mode>AUTO</validation-mode>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.user" value="chustasoft" />
<property name="javax.persistence.jdbc.password" value="chustaK4" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/cs_rocketstats" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.max_fetch_depth" value="3" />
<property name="show_sql" value="true"></property>
</properties>
</persistence-unit>
Define "Maven exportiert nicht persistence.xml". Wenn Sie _persistence.xml_ irgendwo unter src/main/resources/META-INF platzieren, dann ist es sichtbar, wenn Sie eine Anwendung mit Maven ausführen.Warum Dinge in Annahme ("es scheint wie"), wenn Sie Maven mit --debug laufen und sehen, wo die Dinge sind –
Danke für Ihr Interesse, ich mache von Eclipse, vielleicht habe ich nicht genug Wissen, aber ich habe nicht Ich verstehe nur, was du mit "run maven with debug" sagen willst. Ich debugge gerade die App und das ist das Problem, das ich habe: S Danke –
Ich muss sagen, dass _persistence.xml_ es unter src \ META-INF ist, aber es ist wie es jetzt funktioniert. Wenn der Weg ein Problem ist, wie kann ich ändern, ohne zu arbeiten? Nochmals vielen Dank –