首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >java.lang.ClassNotFoundException: javax.persistence.PersistenceException

java.lang.ClassNotFoundException: javax.persistence.PersistenceException
EN

Stack Overflow用户
提问于 2018-08-16 02:15:25
回答 2查看 2K关注 0票数 0

我是Hibernate的新手,servlets。我正在尝试从html注册表中使用hibernate将数据存储在mysql数据库中。但是我一直把这个错误作为根本原因。以下是弹出的两个根本原因。

代码语言:javascript
复制
HTTP status 500 Internal server error.

Exception

javax.servlet.ServletException: Servlet execution threw an exception
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Root Cause

java.lang.NoClassDefFoundError: javax/persistence/PersistenceException
    java.base/java.lang.ClassLoader.defineClass1(Native Method)
    java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1007)
    java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
    org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2339)
    org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:829)
    org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1278)
    org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1137)
    kish.hibernate.servletController.registerData.doGet(registerData.java:30)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Root Cause

java.lang.ClassNotFoundException: javax.persistence.PersistenceException
    org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1309)
    org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1137)
    java.base/java.lang.ClassLoader.defineClass1(Native Method)
    java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1007)
    java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
    org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2339)
    org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:829)
    org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1278)
    org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1137)
    kish.hibernate.servletController.registerData.doGet(registerData.java:30)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

这是我的hibernate.cfg.xml文件

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configurationn>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
        <property name="hibernate.connection.password">Kish</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/demo</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
        <property name="hbm2ddl.auto">create</property> <!-- create table every time -->
        <property name="show_sql">true</property>
        <mapping class="kish.hibernate.Pojo.Student"></mapping>

    </session-factory>

</hibernate-configurationn>

这是我的html文件

代码语言:javascript
复制
<html> 
<head>
<title> RegistrationForm</title>
<link rel = "stylesheet" type = "text/css" href = "style1.css">
<body>


  <div class= "registrationBox">
        <img src= "avatar1.png" class= "avatar">
     <h1> enter your details below form</h1>   

<form action = "registerData" method ="get"> 
    <p>Firstname</p>
    <input type="text" name="first_name" placeholder="Enter your firstname">
   <p>Lastname</p>
   <input type = "text" name= "last_name" placeholder="Your lastname ">
   <p>Branch</p>
   <input type = "text" name="branch" placeholder="your branch">
   <p>Id</p>
   <input type = "text" name = "Id" placeholder="your id">
   <p>password</p>
   <input type="password" name="password" placeholder="create your password">
   <input type="submit" name="submit" value = "confirm">
 </form>
</div>

</body>
</head>
</html>

servlet文件registerData.java

代码语言:javascript
复制
[package kish.hibernate.servletController;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import kish.hibernate.DAO.MainController;

@WebServlet("/registerData")
public class registerData extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public registerData() {
        super();
    }


    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String first_name = request.getParameter("first_name");
        String last_name = request.getParameter("last_name");
        String branch = request.getParameter("branch");
        int Id = Integer.parseInt(request.getParameter("Id"));
        String password = request.getParameter("password");


        MainController mc = new MainController();
        mc.addUserDeatails(first_name, last_name, branch, Id, password);
        response.sendRedirect("success");

    }

}

我会张贴任何进一步的数据,如果需要。

如有任何建议,欢迎光临。谢谢。

编辑:

"javax.persistence.jar“

它显然包含"javax.persistence.PersistenceException.class“

已添加此jar,但仍显示相同的错误。

updated jar file in classpath

EN

回答 2

Stack Overflow用户

发布于 2018-08-16 02:50:45

当JVM试图在运行时动态加载一个类时,就会出现ClassNotFoundException。

NoClassDefFoundError这个有问题的类是在编译时出现的,这就是为什么程序成功编译但在运行时不可用的原因

请检查您的类路径。因为它是maven,所以请检查您的setting.xml中的lib文件夹路径,并检查该jar在m2.pository中是否可用。

票数 0
EN

Stack Overflow用户

发布于 2018-08-16 05:35:02

解决方案是,添加如下所示的jar文件

添加到WEB-INF/lib文件夹。

jar files

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51864229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档