java.lang.ClassNotFoundException:org.hibernate.HibernateException

时间:2015-12-06 07:50:19

标签: java spring hibernate tomcat servlets

在运行Hibernate Web项目时出现此类错误。

  

HTTP状态500 - Servlet执行引发异常

     

输入例外报告

     

消息Servlet执行引发异常

     

description服务器遇到阻止它的内部错误   完成此请求。

     

例外

     

javax.servlet.ServletException:Servlet执行引发异常     org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)   根本原因

     

java.lang.NoClassDefFoundError:org / hibernate / HibernateException     com.jwt.hibernate.controller.UserControllerServlet.doPost(UserControllerServlet.java:28)     javax.servlet.http.HttpServlet.service(HttpServlet.java:650)     javax.servlet.http.HttpServlet.service(HttpServlet.java:731)     org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)   根本原因

     

java.lang.ClassNotFoundException:org.hibernate.HibernateException     org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1858)     org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1709)     com.jwt.hibernate.controller.UserControllerServlet.doPost(UserControllerServlet.java:28)     javax.servlet.http.HttpServlet.service(HttpServlet.java:650)     javax.servlet.http.HttpServlet.service(HttpServlet.java:731)     org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)   note注意Apache中提供了根本原因的完整堆栈跟踪   Tomcat / 7.0.64日志。

User.java

package com.jwt.hibernate.bean;

public class User {

    private int id;
    private String userName;
    private String password1;
    private String email;
    private String phone;
    private String city;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword1() {
        return password1;
    }

    public void setPassword1(String password1) {
        this.password1 = password1;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

}

Success.java

package com.jwt.hibernate.controller;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Success extends HttpServlet {

    protected void doGet(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {
    PrintWriter writer = response.getWriter();

    writer.println("" + "" + "<center>"
            + "Details Added Successfully" + "</center>" + ""
            + "");
     }

}

UserControllerServlet.java

 package com.jwt.hibernate.controller;

 import java.io.IOException;

 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;

 import com.jwt.hibernate.dao.UserDAO;

 public class UserControllerServlet extends HttpServlet {


     private static final long serialVersionUID = 1L;

     protected void doPost(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {

    String userName = request.getParameter("userName");
    String password = request.getParameter("password1");
    String email = request.getParameter("email");
    String phone = request.getParameter("phone");
    String city = request.getParameter("city");

    HttpSession session = request.getSession(true);
    try {
        UserDAO userDAO = new UserDAO();
        userDAO.addUserDetails(userName, password, email, phone, city);
        response.sendRedirect("Success");
    } catch (Exception e) {

        e.printStackTrace();
    }

    }
}

UserDAO.java

package com.jwt.hibernate.dao;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import com.jwt.hibernate.bean.User;

public class UserDAO {

   public void addUserDetails(String userName, String password, String  
    email,String phone, String city) {
    try {
        // 1. configuring hibernate
        Configuration configuration = new Configuration().configure();

        // 2. create sessionfactory
        SessionFactory sessionFactory = configuration.buildSessionFactory();

        // 3. Get Session object
        Session session = sessionFactory.openSession();

        // 4. Starting Transaction
        Transaction transaction = session.beginTransaction();
        User user = new User();
        user.setUserName(userName);
        user.setPassword1(password);
        user.setEmail(email);
        user.setCity(city);
        user.setPhone(phone);
        session.save(user);
        transaction.commit();
        System.out.println("\n\n Details Added \n");

    } catch (HibernateException e) {
        System.out.println(e.getMessage());
        System.out.println("error");
    }

   }

}

hibernate.cfg.xml中

<?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-configuration>
  <session-factory>
    <property   
   name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property  
  name="hibernate.connection.url">jdbc:mysql://localhost:3306/jwt</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password"></property>
    <property 
    name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="show_sql">true</property>
    <property name="format_sql">true</property>
    <property name="hbm2ddl.auto">create </property>
    <mapping resource="com/jwt/hibernate/bean/user.hbm.xml" />
  </session-factory>
</hibernate-configuration>

user.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD  
  3.0//EN"
  "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
  <class name="com.jwt.hibernate.bean.User" table="USER">
    <id column="ID" name="id" type="java.lang.Integer" />
    <property column="USER_NAME" name="userName" type="java.lang.String" />
    <property column="PASSWORD" name="password1" type="string" />
    <property column="EMAIL" name="email" type="java.lang.String" />
    <property column="PHONE" name="phone" type="java.lang.String" />
    <property column="CITY" name="city" type="java.lang.String" />
    </class>
</hibernate-mapping>

任何人都可以请解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

@guillaume grod-vitouchkin是对的。我也看到了另一个错误:

  

java.lang.NoClassDefFoundError:org / hibernate / HibernateException

请确保org.hibernate.HibernateException在您的项目中退出。

答案 1 :(得分:0)

错误500:表示您的Java应用程序崩溃

日志给出了解释:它缺少一个类(或库):hibernate

在tomcat中,将你的罐子放在那里:

\ webapps \ MyApp \ WEB-INF \ lib:那里