EclipseLink + Maven:java.lang.NoClassDefFoundError:javax / persistence / Persistence

时间:2014-05-31 18:50:20

标签: maven eclipselink persistence.xml

My 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");

任何人都可以建议我做错了什么?

干杯 阿霞

1 个答案:

答案 0 :(得分:0)

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