线程“主”中的异常javax.persistence.PersistenceException:没有名为MyBay的EntityManager的持久性提供程序

问题描述 投票:0回答:1

所以我正在尝试为学校做一个项目,而我在这个错误中停留了将近2天...

Image

我正在使用intelij和Maven。我也在使用wildfly和MySQL。我希望你们能帮助我

这里是poms,持久性和我正在使用的主要对象。

persistence.xml

<?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="MyBay" transaction-type="JTA">
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <jta-data-source>java:/MyBayEAR</jta-data-source>
        <class>data.User</class>
        <class>data.Item</class>
        <exclude-unlisted-classes>false</exclude-unlisted-classes> <!-- Pus à campeão -->
        <properties>
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/MyBay?serverTimezone=UTC" />
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
            <property name="javax.persistence.jdbc.user" value="root" />
            <property name="javax.persistence.jdbc.password" value="12345678" />
            <property name="eclipselink.ddl-generation" value="create-tables" />
            <property name="eclipselink.ddl-generation.output-mode"
                      value="database" />
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL8Dialect" />
            <property name="hibernate.hbm2ddl.auto" value="update" />
        </properties>


    </persistence-unit>
</persistence>

数据层pom.xml

<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>

    <parent>
        <groupId>IS</groupId>
        <artifactId>projeto2-parent</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>

    <artifactId>projeto2-data</artifactId>
    <packaging>ejb</packaging>

    <name>projeto2 data layer</name>
    <description>Entities</description>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>

        <dependency>
            <groupId>org.hibernate.javax.persistence</groupId>
            <artifactId>hibernate-jpa-2.0-api</artifactId>
        </dependency>



        <!-- Estas duas são para resolver o problema do provider no persistence (Mudei para versões mais recentes(abaixo))-->
        <!-- <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>4.3.6.Final</version>
        </dependency>

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>4.3.6.Final</version>

            estava onde está LATEST 5.2.2.Final
        </dependency>
-->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.2.2.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>5.2.2.Final</version>
        </dependency>
        <dependency>
            <groupId>org.jboss.logging</groupId>
            <artifactId>jboss-logging</artifactId>
            <version>3.4.1.Final</version>
        </dependency>
        <dependency>
            <groupId>jboss</groupId>
            <artifactId>jbossall-client</artifactId>
            <version>4.2.2.GA</version>
        </dependency>


    </dependencies>



    <build>
        <finalName>${project.artifactId}</finalName>
    </build>

</project>

父pom.xml

<?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>IS</groupId>
    <artifactId>projeto2-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>

    <name>projeto2-parent</name>
    <url>http://maven.apache.org</url>

    <!-- 2. Definir modulos associados a este pom "pai" -->
    <modules>
        <module>projeto2-web</module>
        <module>projeto2-business</module>
        <module>projeto2-data</module>
        <module>projeto2-ear</module>
    </modules>

    <!-- 3. Definir propriedades, por exemplo variáveis com as versoes de API 
        .. EJB .. War etc -->
    <properties>
        <!-- encoding -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <!--java version -->
        <java-version>1.8</java-version>

        <!-- plugin versions -->
        <ejb-plugin-version>3.0.0</ejb-plugin-version>
        <war-plugin-version>3.2.0</war-plugin-version>
        <ear-plugin-version>2.10</ear-plugin-version>
        <compiler-plugin-version>3.7.0</compiler-plugin-version>
        <wildfly-plugin-version>1.2.0.Final</wildfly-plugin-version>

        <!-- dependency versions -->
        <javaee-api-version>7.0</javaee-api-version>

        <!-- EJB spec version -->
        <ejb-spec-version>3.2</ejb-spec-version>

        <!-- Postgres sql -->
        <!-- <postgreslq.version>9.1-901-1.jdbc4</postgreslq.version> -->

        <!-- Hibernate -->
        <hibernate.version>5.2.11.Final</hibernate.version>

        <!-- Logs et al. -->
        <slf4j.version>1.7.25</slf4j.version>
        <slf4jlog4.version>1.7.25</slf4jlog4.version>

        <junit-version>3.8.1</junit-version>

        <hibernate.validator.version>6.0.2.Final</hibernate.validator.version>
        <hibernatecore.version>5.2.11.Final</hibernatecore.version>
        <hibernate.commons.annotations.version>5.0.1.Final</hibernate.commons.annotations.version>
        <hibernate.jpa.api>1.0.1.Final</hibernate.jpa.api>
        <validation.api>2.0.0.Final</validation.api>
        <jboss.logging>3.3.1.Final</jboss.logging>
        <mysql.connector.java>8.0.8-dmr</mysql.connector.java>

        <server.port>9990</server.port>
    </properties>


    <!-- 4. Dependencias do pai -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>javax</groupId>
                <artifactId>javaee-api</artifactId>
                <version>${javaee-api-version}</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>${slf4jlog4.version}</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit-version}</version>
                <scope>provided</scope>
            </dependency>

            <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-core</artifactId>
                <version>${hibernatecore.version}</version>
                <scope>provided</scope>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator -->
            <dependency>
                <groupId>org.hibernate.validator</groupId>
                <artifactId>hibernate-validator</artifactId>
                <version>${hibernate.validator.version}</version>
                <scope>provided</scope>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.hibernate.common/hibernate-commons-annotations -->
            <dependency>
                <groupId>org.hibernate.common</groupId>
                <artifactId>hibernate-commons-annotations</artifactId>
                <version>${hibernate.commons.annotations.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.hibernate.javax.persistence</groupId>
                <artifactId>hibernate-jpa-2.0-api</artifactId>
                <version>${hibernate.jpa.api}</version>
                <scope>provided</scope>
            </dependency>

            <!-- https://mvnrepository.com/artifact/javax.validation/validation-api -->
            <dependency>
                <groupId>javax.validation</groupId>
                <artifactId>validation-api</artifactId>
                <version>${validation.api}</version>
                <scope>provided</scope>
            </dependency>

            <!-- https://mvnrepository.com/artifact/org.jboss.logging/jboss-logging -->
            <dependency>
                <groupId>org.jboss.logging</groupId>
                <artifactId>jboss-logging</artifactId>
                <version>${jboss.logging}</version>
                <scope>provided</scope>
            </dependency>

            <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql.connector.java}</version>
                <scope>provided</scope>
            </dependency>




        </dependencies>

    </dependencyManagement>

    <!-- 5. Plugins a serem usados -->
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.wildfly.plugins</groupId>
                    <artifactId>wildfly-maven-plugin</artifactId>
                    <version>${wildfly-plugin-version}</version>
                    <configuration>
                        <skip>true</skip>
                        <hostname>localhost</hostname>
                        <port>${server.port}</port>
                    </configuration>

                </plugin>


                <!-- compiler plugin -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${compiler-plugin-version}</version>
                    <configuration>
                        <source>${java-version}</source>
                        <target>${java-version}</target>
                        <encoding>${project.build.sourceEncoding}</encoding>
                    </configuration>
                </plugin>

                <!-- maven ear plugin -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-ear-plugin</artifactId>
                    <version>${ear-plugin-version}</version>
                    <configuration>
                        <generateModuleId>true</generateModuleId>
                        <archive>
                            <manifest>
                                <addClasspath>true</addClasspath>
                                <classpathPrefix>lib/</classpathPrefix>
                            </manifest>
                        </archive>
                    </configuration>
                </plugin>

                <!-- ejb plugin -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-ejb-plugin</artifactId>
                    <version>${ejb-plugin-version}</version>
                    <configuration>
                        <ejbVersion>${ejb-spec-version}</ejbVersion>
                    </configuration>
                </plugin>

                <!-- war plugin -skinny wars mode! -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>${war-plugin-version}</version>
                    <configuration>
                        <failOnMissingWebXml>false</failOnMissingWebXml>
                        <!-- <packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes> -->
                        <archive>
                            <manifest>
                                <addClasspath>true</addClasspath>
                                <classpathPrefix>lib/</classpathPrefix>
                            </manifest>
                        </archive>
                        <webResources>
                            <resource>
                                <filtering>true</filtering>
                                <directory>src/main/webapp</directory>
                                <includes>
                                    <include>**/web.xml</include>
                                </includes>
                            </resource>
                        </webResources>
                    </configuration>
                </plugin>











                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>3.1.1</version>
                    <executions>
                        <execution>
                            <id>copy-dependencies</id>
                            <phase>package</phase>
                            <goals>
                                <goal>copy-dependencies</goal>
                            </goals>
                            <configuration>
                                <outputDirectory>${project.build.directory}/lib</outputDirectory>
                                <includeScope>runtime</includeScope>
                                <overWriteReleases>false</overWriteReleases>
                                <overWriteSnapshots>false</overWriteSnapshots>
                                <overWriteIfNewer>true</overWriteIfNewer>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>

具有主要功能的类

package data;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import javax.persistence.spi.PersistenceProvider;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Scanner;

public class Worker {

    public static void main(String[] args) throws ParseException {
        //SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd");


        User p = new User("Utilizador1","Portugal","[email protected]","password1");
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("MyBay");
        EntityManager em = emf.createEntityManager();
        EntityTransaction transaction = em.getTransaction();

        transaction.begin();
        em.persist(p);
        transaction.commit();

}
}
java mysql maven jpa wildfly
1个回答
0
投票

添加Mysql依赖项

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>
© www.soinside.com 2019 - 2024. All rights reserved.