【问题标题】:EclipseLink + Maven: java.lang.NoClassDefFoundError: javax/persistence/PersistenceEclipseLink + Maven:java.lang.NoClassDefFoundError:javax/persistence/Persistence
【发布时间】:2014-05-31 18:50:19
【问题描述】:

我的 Persistence.xml 如下:

<persistence-unit name="SARMPersistentUnit" transaction-type="RESOURCE_LOCAL">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <class>edu.deakin.sarms.model.StudentAccount</class>
    <class>edu.deakin.sarms.model.LecturerAccount</class>
    <class>edu.deakin.sarms.model.Unit</class>
    <class>edu.deakin.sarms.model.Enrollment</class>
    <class>edu.deakin.sarms.model.Attendance</class>
    <properties>
        <property name="javax.persistence.jdbc.url" value="jdbc:mysql://xx.yy.ss:3306/t2"/>
        <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
        <property name="javax.persistence.jdbc.user" value="xx"/>
        <property name="javax.persistence.jdbc.password" value="ee"/>
        <property name="eclipselink.ddl-generation" value="drop-create-tables"/>

    </properties>
</persistence-unit>

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>edu.deakin.sarms</groupId>
        <artifactId>sarms2</artifactId>
        <version>1.0-SNAPSHOT</version>

        <repositories>
            <repository>
                <id>oss.sonatype.org</id>
                <name>OSS Sonatype Staging</name>
                <url>https://oss.sonatype.org/content/groups/staging</url>
            </repository>
        </repositories>

        <dependencies>
             <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>eclipselink</artifactId>
                <version>2.5.0</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.eclipse.persistence</groupId>
                        <artifactId>commonj.sdo</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>javax.persistence</artifactId>
                <version>2.1.0</version>
            </dependency>

           <dependency>
                <groupId>javax.persistence</groupId>
                <artifactId>persistence-api</artifactId>
                <version>1.0.2</version>
            </dependency>



            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.6</version>
            </dependency>


        </dependencies>

        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>2.0.2</version>
                    <configuration>
                        <source>1.5</source>
                        <target>1.5</target>
                        <encoding>UTF-8</encoding>
                        <fork>true</fork>
                        <meminitial>128M</meminitial>
                        <maxmem>512M</maxmem>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <configuration>

                        <archive>
                            <manifest>
                                <mainClass>edu.deakin.sarms.service.SarmsControl</mainClass>
                                <addClasspath>true</addClasspath>
                            </manifest>
                        </archive>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </project>

我仍然收到“java.lang.NoClassDefFoundError: javax/persistence/Persistence”,在线:

public static EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("SARMPersistentUnit");

谁能建议我做错了什么?

干杯 阿耶莎

【问题讨论】:

  • 我创建了项目并从 Idea 运行 - 所有作品。你如何运行你的应用程序?试试mvn exec:java -Dexec.mainClass="edu.deakin.sarms.service.SarmsControl"
  • 我也在研究想法。我做到了,mvn 全新安装。试过的 java -jar 。您的命令很有帮助,但我遇到了另一个问题,persistence.xml 文件不在 src/main/ 下,而不是 src/main/resources 下。所以现在我的问题解决了!

标签: maven eclipselink persistence.xml


【解决方案1】:

我正在执行 mvn clean install 然后 java -jar 。然后我使用了@ajozwk 在评论中提到的命令,但是我遇到了另一个问题,persistence.xml 文件位于 src/main/ 下,而不是 src/main/resources 下。所以现在我的问题解决了!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-08
    • 2011-02-20
    • 2012-10-02
    • 2018-05-07
    • 2014-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多