在运行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>
任何人都可以请解决这个问题吗?
答案 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:那里