java.lang.NoClassDefFoundError: Could not initialize class
无根柳絮 2015-10-21 11:34:34 我是用servlet获取姓名密码,通过hibernate添加到数据库中,我的hibernate写好了测试没有问题,但是在用servlet调用的时候报java.lang.NoClassDefFoundError: Could not initialize class 异常。我看网络上说是jar包导入问题我导入的是hibernate5.4的版本,我需要怎么解决啊?
package com.mahui.dblink;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtils {
/*
*读取Hibernate.cfg.xml文件
*/
private static SessionFactory factory;
static {
try {
//读取hibernate.cfg.xml文件
Configuration cfg = new Configuration().configure();
//建立SessionFactory
factory = cfg.buildSessionFactory();
}catch(Exception e) {
e.printStackTrace();
}
}
/*
*打开Session
*/
public static Session getSession() {
return factory.openSession();
}
/*
*关闭Session
*/
public static void closeSession(Session session) {
if (session != null) {
if (session.isOpen()) {
session.close();
}
}
}
public static SessionFactory getSessionFactory() {
return factory;
}
}
package com.mahui.dblink;
import junit.framework.TestCase;
import org.hibernate.Session;
import com.mahui.model.MHPLAYERUSER;
public class HibernateQLData extends TestCase {
/*
* 增加User
*/
public void testSave(String type,String username,String password) {
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
MHPLAYERUSER mh = new MHPLAYERUSER();
mh.setType(type);
mh.setUsername(username);
mh.setPassword(password);
session.save(mh);
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally {
HibernateUtils.closeSession(session);
}
}
/**
* 删除
*/
public static void testDel(String username){
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
MHPLAYERUSER user=(MHPLAYERUSER)session.load(MHPLAYERUSER.class,username);
session.delete(user);
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally {
HibernateUtils.closeSession(session);
}
}
/**
* 修改
*/
public void testUpdate(String username){
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
MHPLAYERUSER user=(MHPLAYERUSER)session.load(MHPLAYERUSER.class,username);
user.setUsername("王五");
session.update(user);
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally {
HibernateUtils.closeSession(session);
}
}
/**
* 查询
*/
public void testLoad(String username){
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
MHPLAYERUSER user=(MHPLAYERUSER)session.load(MHPLAYERUSER.class,username);
System.out.println(user.getUsername());
System.out.println(user.getPassword());
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally {
HibernateUtils.closeSession(session);
}
}
public static void main(String[] args){
//testSave("2","MAHU","123");
testDel("MAHUI");
//testUpdate("王五");
//testLoad("王五");
}
}
package com.mahui.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mahui.dblink.HibernateQLData;
import com.mahui.dblink.Test;
public class ZhuCeServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String type="1";
/*String username=request.getParameter("username");
String password=request.getParameter("password");*/
String username="mahui2";
String password="mmmmm";
System.out.println("username:"+new String(username.getBytes("iso8859-1"),"utf-8"));
System.out.println("password:"+new String(password.getBytes("iso8859-1"),"utf-8"));
//System.out.println("hello word!");
Test.test(type,username,password);
}
}
十月 21, 2015 11:30:24 上午 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet ZhuCeServlet threw exception
java.lang.NoClassDefFoundError: Could not initialize class com.mahui.dblink.HibernateUtils
at com.mahui.dblink.HibernateQLData.testSave(HibernateQLData.java:30)
at com.mahui.dblink.Test.test(Test.java:8)
at com.mahui.servlet.ZhuCeServlet.doPost(ZhuCeServlet.java:31)
at com.mahui.servlet.ZhuCeServlet.doGet(ZhuCeServlet.java:18)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:724)