2017-06-07 1 views
0

Ich konvertiere ein altes Eclipse IVY Project in maven. Im alten Projekt hat es eclipselink benutzt, und ich möchte, dass es Hibernate benutzt.Noch ein "No Persistence Provider für EntityManager namens X"

Ich habe ein paar Projekte mit Hibernate erstellt, also habe ich meine persistence.XML verwendet und die Teile geändert, die geändert werden mussten.

Obwohl ich ein Problem habe; Es kann meinen Persistenzanbieter nicht finden. In meinem Pom, habe ich versucht, die Hibernate-Core-Abhängigkeit und den Hibernate-Persistenz-Provider - keine funktioniert.

Was nun, mein pom sich wie folgt:

<?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>test.dk</groupId> 
<artifactId>test-test</artifactId> 
<packaging>war</packaging> 
<version>4.1</version> 
<name>test</name> 

<prerequisites> 
    <maven>3</maven> 
</prerequisites> 

<properties> 
    <vaadin.version>7.7.8</vaadin.version> 
    <vaadin.plugin.version>7.7.8</vaadin.plugin.version> 
    <jetty.plugin.version>9.3.9.v20160517</jetty.plugin.version> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <maven.compiler.source>1.8</maven.compiler.source> 
    <maven.compiler.target>1.8</maven.compiler.target> 
    <!-- If there are no local customisations, this can also be "fetch" or "cdn" --> 
    <vaadin.widgetset.mode>local</vaadin.widgetset.mode> 
</properties> 

<repositories> 
    <repository> 
     <id>vaadin-addons</id> 
     <url>http://maven.vaadin.com/vaadin-addons</url> 
    </repository> 
</repositories> 

<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>com.vaadin</groupId> 
      <artifactId>vaadin-bom</artifactId> 
      <version>${vaadin.version}</version> 
      <type>pom</type> 
      <scope>import</scope> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 

<dependencies> 

    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <version>3.0.1</version> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>com.vaadin</groupId> 
     <artifactId>vaadin-server</artifactId> 
    </dependency> 


    <dependency> 
     <groupId>com.vaadin</groupId> 
     <artifactId>vaadin-client-compiled</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>com.vaadin</groupId> 
     <artifactId>vaadin-themes</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>com.vaadin.addon</groupId> 
     <artifactId>vaadin-charts-model</artifactId> 
     <version>3.2.0</version> 
    </dependency> 

    <dependency> 
     <groupId>com.vaadin.addon</groupId> 
     <artifactId>vaadin-charts</artifactId> 
     <version>3.2.0</version> 
    </dependency> 

    <dependency> 
     <groupId>batik</groupId> 
     <artifactId>batik-bridge</artifactId> 
     <version>1.6</version> 
    </dependency> 

    <dependency> 
     <groupId>batik</groupId> 
     <artifactId>batik-gvt</artifactId> 
     <version>1.6</version> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.xmlgraphics</groupId> 
     <artifactId>batik-anim</artifactId> 
     <version>1.8</version> 
    </dependency> 

    <dependency> 
     <groupId>com.lowagie</groupId> 
     <artifactId>itext</artifactId> 
     <version>2.1.7</version> 
    </dependency> 

    <dependency> 
     <groupId>org.vaadin.addon</groupId> 
     <artifactId>confirmdialog</artifactId> 
     <version>3.1.1</version> 
    </dependency> 

    <dependency> 
     <groupId>batik</groupId> 
     <artifactId>batik-util</artifactId> 
     <version>1.6</version> 
    </dependency> 

    <dependency> 
     <groupId>batik</groupId> 
     <artifactId>batik-svggen</artifactId> 
     <version>1.6</version> 
    </dependency> 

    <dependency> 
     <groupId>batik</groupId> 
     <artifactId>batik-svg-dom</artifactId> 
     <version>1.6</version> 
    </dependency> 

    <dependency> 
     <groupId>com.vaadin</groupId> 
     <artifactId>vaadin-client-compiled</artifactId> 
     <version>${vaadin.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>batik</groupId> 
     <artifactId>batik-dom</artifactId> 
     <version>1.6</version> 
    </dependency> 

    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <version>5.2.1.Final</version> 
    </dependency> 

    <dependency> 
     <groupId>org.snmp4j</groupId> 
     <artifactId>snmp4j</artifactId> 
     <version>2.5.0</version> 
    </dependency> 

    <dependency> 
     <groupId>ch.ethz.ganymed</groupId> 
     <artifactId>ganymed-ssh2</artifactId> 
     <version>262</version> 
    </dependency> 

</dependencies> 

<build> 
    <plugins> 

     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.6</version> 
      <configuration> 
       <failOnMissingWebXml>false</failOnMissingWebXml> 
       <!-- Exclude an unnecessary file generated by the GWT compiler. --> 
       <packagingExcludes>WEB-INF/classes/VAADIN/widgetsets/WEB-INF/**</packagingExcludes> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>com.vaadin</groupId> 
      <artifactId>vaadin-maven-plugin</artifactId> 
      <version>${vaadin.plugin.version}</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>update-theme</goal> 
         <goal>update-widgetset</goal> 
         <goal>compile</goal> 
         <goal>compile-theme</goal> 
         <!-- Comment out compile-theme goal to use on-the-fly theme compilation --> 
         <goal>compile-theme</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-clean-plugin</artifactId> 
      <version>3.0.0</version> 
      <!-- Clean up also any pre-compiled themes --> 
      <configuration> 
       <filesets> 
        <fileset> 
         <directory>src/main/webapp/VAADIN/themes</directory> 
         <includes> 
          <include>**/styles.css</include> 
          <include>**/styles.scss.cache</include> 
         </includes> 
        </fileset> 
       </filesets> 
      </configuration> 
     </plugin> 

     <!-- The Jetty plugin allows us to easily test the development build by 
      running jetty:run on the command line. --> 
     <plugin> 
      <groupId>org.eclipse.jetty</groupId> 
      <artifactId>jetty-maven-plugin</artifactId> 
      <version>${jetty.plugin.version}</version> 
      <configuration> 
       <scanIntervalSeconds>2</scanIntervalSeconds> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 


<profiles> 
    <profile> 
     <!-- Vaadin pre-release repositories --> 
     <id>vaadin-prerelease</id> 
     <activation> 
      <activeByDefault>false</activeByDefault> 
     </activation> 

     <repositories> 
      <repository> 
       <id>vaadin-prereleases</id> 
       <url>http://maven.vaadin.com/vaadin-prereleases</url> 
      </repository> 


      <repository> 
       <id>vaadin-addons</id> 
       <url>http://maven.vaadin.com/vaadin-addons</url> 
      </repository> 


      <repository> 
       <id>vaadin-snapshots</id> 
       <url>https://oss.sonatype.org/content/repositories/vaadin-snapshots/</url> 
       <releases> 
        <enabled>false</enabled> 
       </releases> 
       <snapshots> 
        <enabled>true</enabled> 
       </snapshots> 
      </repository> 
     </repositories> 
     <pluginRepositories> 
      <pluginRepository> 
       <id>vaadin-prereleases</id> 
       <url>http://maven.vaadin.com/vaadin-prereleases</url> 
      </pluginRepository> 
      <pluginRepository> 
       <id>vaadin-snapshots</id> 
       <url>https://oss.sonatype.org/content/repositories/vaadin-snapshots/</url> 
       <releases> 
        <enabled>false</enabled> 
       </releases> 
       <snapshots> 
        <enabled>true</enabled> 
       </snapshots> 
      </pluginRepository> 
     </pluginRepositories> 
    </profile> 
</profiles> 

Und mein persistence.xml

<persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://xmlns.jcp.org/xml/ns/persistence" 
     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence 
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd" 
     version="2.1"> 
<persistence-unit name="Test" transaction-type="RESOURCE_LOCAL"> 
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> 
    <properties> 
     <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/stabilitydb2?useSSL=false"/> 
     <property name="javax.persistence.jdbc.user" value="root"/> 
     <property name="javax.persistence.jdbc.password" value="PASSWORD_ON_STACKOVERFLOW"/> 
     <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/> 
     <property name="hibernate.show_sql" value="false"/> 
     <property name="hibernate.format_sql" value="true"/> 
     <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/> 
     <property name="hibernate.hbm2ddl.auto" value="validate"/> 

     <!-- Configuring Connection Pool --> 
     <property name="hibernate.c3p0.min_size" value="5"/> 
     <property name="hibernate.c3p0.max_size" value="20"/> 
     <property name="hibernate.c3p0.timeout" value="500"/> 
     <property name="hibernate.c3p0.max_statements" value="50"/> 
     <property name="hibernate.c3p0.idle_test_period" value="2000"/> 
    </properties> 
</persistence-unit> 

Und ich dafür gesorgt haben, die persistence.xml ist befindet sich in den Ressourcen

Resources folder

Obwohl ich erhalte den Fehler

Jun 07, 2017 9:58:52 AM com.vaadin.server.DefaultErrorHandler doDefault 
SEVERE: javax.persistence.PersistenceException: No Persistence provider for EntityManager named Test 

Und den Code für die EntityManager Erstellung (ich weiß, es ist nicht THREAD -. Sry)

public class FactoryMaker { 

    /** 
    * The entity manager factory. 
    */ 
    private static EntityManagerFactory entityManagerFactory; 

    /** 
    * Gets the factory - singleton 
    * 
    * @return the factory 
    */ 
    public static EntityManagerFactory getFactory() { 
     if (entityManagerFactory == null) 
      entityManagerFactory = Persistence.createEntityManagerFactory("Test"); 

     return entityManagerFactory; 
    } 

} 

Dies ist in allen anderen Arbeits Projekte. Was ist los? Ich habe versucht, meinen Repo zu löschen und neu zu importieren. Kein Würfel.

Wirklich hoffe jemand kann mir helfen.

Mit freundlichen Grüßen.

+1

hat die Datei wirklich ein Suffix "XML" (Großbuchstaben)? Vielleicht beheben Sie das –

+0

. Angenommen, intellij korrigiert es in Großbuchstaben. Habe nur meine alten Projekte überprüft, alle sind Großbuchstaben und funktionieren gut. –

Antwort

0

Nun, das ist akward.

Das Problem war der mysql-connector ...

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> 
<dependency> 
    <groupId>mysql</groupId> 
    <artifactId>mysql-connector-java</artifactId> 
    <version>5.1.6</version> 
</dependency> 

fehlte.

+0

Der mysql Connector ist für alle Datenbankverbindungen zu MqSql db erforderlich, unabhängig von JPA/JDBC. –

Verwandte Themen