我正在尝试使用EclipseLink + JPA启动一个新的Web项目。一切正常,直到开始执行-一旦建立与数据库的连接,就会引发异常:
“ java.lang.ClassNotFoundException:javax.persistence.Persistence”。
我想我通常知道此错误的含义(java无法找到该类);但是,我无法克服它。我从StackOverflow尝试了许多示例,这些示例显示了应该导入哪些依赖项,但是它们对我都不起作用。
我创建了一个最小的无效示例。
具有以下内容的简单JSP页面:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<body>
<%
Class.forName("javax.persistence.Persistence");
%>
</body>
</html>
和具有依赖性的Maven
<dependencies>
<!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.derby/derbyclient -->
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derbyclient</artifactId>
<version>10.15.2.0</version>
<scope>runtime</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.eclipse.persistence/org.eclipse.persistence.jpa -->
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.jpa</artifactId>
<version>2.7.7</version>
<scope>runtime</scope>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.eclipse.persistence</groupId>-->
<!-- <artifactId>eclipselink</artifactId>-->
<!-- <version>2.5.1</version>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>org.eclipse.persistence</groupId>-->
<!-- <artifactId>javax.persistence</artifactId>-->
<!-- <version>2.0.0</version>-->
<!-- <scope>compile</scope>-->
<!-- </dependency>-->
<!-- <!– https://mvnrepository.com/artifact/org.hibernate.javax.persistence/hibernate-jpa-2.1-api –>-->
<!-- <dependency>-->
<!-- <groupId>org.hibernate.javax.persistence</groupId>-->
<!-- <artifactId>hibernate-jpa-2.1-api</artifactId>-->
<!-- <version>1.0.2.Final</version>-->
<!-- </dependency>-->
<!-- https://mvnrepository.com/artifact/org.hibernate.javax.persistence/hibernate-jpa-2.0-api -->
<!-- <dependency>-->
<!-- <groupId>org.hibernate.javax.persistence</groupId>-->
<!-- <artifactId>hibernate-jpa-2.0-api</artifactId>-->
<!-- <version>1.0.1.Final</version>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>org.eclipse.persistence</groupId>-->
<!-- <artifactId>eclipselink</artifactId>-->
<!-- <version>2.5.1</version>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>org.eclipse.persistence</groupId>-->
<!-- <artifactId>javax.persistence</artifactId>-->
<!-- <version>2.1.0</version>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>org.hibernate.javax.persistence</groupId>-->
<!-- <artifactId>hibernate-jpa-2.1-api</artifactId>-->
<!-- <version>1.0.0.Final</version>-->
<!-- </dependency>-->
</dependencies>
其他地方可能存在问题,还是我忽略了某些地方?
如果有人可以向我发送pom.xml
文件,该文件正在运行,将不胜感激。
谢谢您的帮助。
答案 0 :(得分:0)
好,终于明白了,也许对某人有帮助。
主要问题是,尽管库是由Maven正确导入的,但并未在工件中导出。因此,执行的Web应用程序无法找到该类。
下载的.jar文件必须添加到输出工件的“ lib”文件夹中。
可能对某人有帮助。