2014-07-15 20 views
-1

我想使用Hibernate從JSP插入數據到MySQL,但無法獲得會話工廠的對象。java.lang.ClassNotFoundException:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter)

我成功創建了Hibernate util類的對象,但是在獲取數據時顯示錯誤。

雖然我在JSP頁面中輸入數據並獲取DAO層中的數據。但是在DAO層,我擴展了會話工廠類。但我無法完成任務。

(Struts Action類)

package org.sachin.action; 

import java.util.List; 

import org.sachin.hibernate.AdminCreate; 
import org.sachin.hibernate.AdminManager; 

import com.opensymphony.xwork2.ActionSupport; 


public class Addad extends ActionSupport { 

private AdminCreate admincreate; 
private List<AdminCreate> adminList; 
private Long id; 

    AdminManager adminmanager; 
    public Addad() { 
     AdminManager adminmanager=new AdminManager(); 
    } 

    public String execute() { 
     return SUCCESS; 
    } 

public String add() { 
     AdminManager adm=new AdminManager(); 
     System.out.println(getadmin()); 
     try { 
      adm.add(getadmin()); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return SUCCESS; 
    } 

    public AdminCreate getadmin() { 
     return admincreate; 
    } 

    public List<AdminCreate> getadminList() { 
     return adminList; 
    } 

    public void setadmin(AdminCreate adminCreate) { 
     this.admincreate = adminCreate; 
    } 

    public void setadminList(List<AdminCreate> adminList) { 
     this.adminList = adminList; 
    } 

    public Long getId() { 
     return id; 
    } 

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

(Hibernate工具類)

package org.sachin.hibernate; 

import org.hibernate.SessionFactory; 
import org.hibernate.cfg.AnnotationConfiguration; 

public class HibernateUtil { 

    private static final SessionFactory sessionFactory = buildSessionFactory(); 

    private static SessionFactory buildSessionFactory() { 
     try { 
      // Create the SessionFactory from hibernate.cfg.xml 
      return new AnnotationConfiguration().configure() 
        .buildSessionFactory(); 
     } catch (Throwable ex) { 
      System.err.println("Initial SessionFactory creation failed." + ex); 
      throw new ExceptionInInitializerError(ex); 
     } 
    } 

    public static SessionFactory getSessionFactory() { 
     return sessionFactory; 
    } 
} 

(DAO類)

package org.sachin.hibernate; 

import java.util.List; 

import org.hibernate.HibernateException; 
import org.hibernate.classic.Session; 

public class AdminManager extends HibernateUtil { 
    public AdminCreate add(AdminCreate admincreate) { 
     Session session = HibernateUtil.getSessionFactory().getCurrentSession(); 
     session.beginTransaction(); 
     session.save(admincreate); 
     session.getTransaction().commit(); 
     return admincreate; 
    } 

    public List<AdminCreate> list() { 
     Session session = HibernateUtil.getSessionFactory().getCurrentSession(); 
     session.beginTransaction(); 
     List<AdminCreate> admin = null; 
     try { 
      admin = (List<AdminCreate>)session.createQuery("from admin").list(); 
     } catch (HibernateException e) { 
      e.printStackTrace(); 
      session.getTransaction().rollback(); 
     } 
     session.getTransaction().commit(); 
     return admin; 
    } 
} 

(讀取數據)
JSP頁面:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
    <%@ taglib prefix="s" uri="/struts-tags"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<link rel="stylesheet" type="text/css" href="NewFile.css"> 
<title>Edit Details</title> 
<script type="text/javascript" src="/javascript/confirm.js"> 
</script> 
</head> 
<body> 
<center><div style="color:#FF0000: #FF0000; border-radius: 5px 5px 0px 0px; padding: 15px;"><span style="font-family: verdana,arial; color: #FF0000; font-size: 2.00em; font-weight:bold;">Edit Details<br><br> </span></div></center> 

<s:form action="/tut/admincreate" id="login" onsubmit="return confirm()"> 
<s:textfield label="UserName:" name="admincreate.username"></s:textfield> 
<s:textfield label="Firstname:" name="admincreate.firstname"></s:textfield> 
<s:textfield label="LastName:" name="admincreate.lastname"></s:textfield> 
<s:password label="Password:" ID="password" name="admincreate.password"></s:password> 
<!--<s:password label="Confirm Password:" ID="cpassword" name="cpassword" key="admincreate.cpassword"></s:password>--> 
<s:submit value="Change My Details"></s:submit> 

</s:form> 

</body> 
</html> 
+0

標題與主體無關。 –

+0

同意;完全不清楚你要問什麼,或者問題是什麼。 –

+0

我只是問,我想保存從jsp到數據庫使用hibernate獲取的數據。我嘗試使用上面的代碼。但沒有運氣。一味建議 – sachin

回答

0

當您嘗試執行任務時,是否在標題中提到了ClassNotFoundException? 如果是這樣,那可能是,您使用的是舊版本的struts2。 2.1.3的struts-版本之前我們使用的

org.apache.struts2.dispatcher.FilterDispatcher 

代替

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 

FilterDispatcher因爲2.1.3支柱版本已經過時了。

0

可能struts庫不存在於WEB-INF/lib下。嘗試手動複製最小罐子或通過將庫添加爲configure eclipse to autodeploy jars

Project property->DeploymentAssembly->Add . 
相關問題