`
yuanke
  • 浏览: 70428 次
  • 性别: Icon_minigender_2
  • 来自: 临沂
社区版块
存档分类
最新评论

getHibernateTemplate.get()返回null

    博客分类:
  • J2EE
阅读更多
[color=blue]Exception:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: java.lang.NullPointerException
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

java.lang.NullPointerException
struts.action.LoginAction.execute(LoginAction.java:30)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.


这是spring配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

   <bean id="cdao" class="dao.CustomerDao2">
         <property name="sessionFactory">
               <ref local="sessionFactory"/>
         </property>
   </bean>
  
   <bean name="/login" class="struts.action.LoginAction">
          <property name="cdao">
                  <ref local="cdao"/>
          </property>
   </bean>
  
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="/WEB-INF/hibernate.cfg.xml">
</property>
</bean></beans>




这是hibernate.cfg.xml
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

<session-factory>
<property name="hbm2ddl.auto">update</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/test
</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="myeclipse.connection.profile">MySql</property>
<property name="show_sql">true</property>
<mapping resource="po/Customer.hbm.xml" />

</session-factory>

</hibernate-configuration>









这是struts.cfg.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
  <data-sources />
  <form-beans >
    <form-bean name="cunKuanForm" type="struts.form.CunKuanForm" />
    <form-bean name="loginForm" type="struts.form.LoginForm" />
    <form-bean name="regForm" type="struts.form.RegForm" />
    <form-bean name="quKuanForm" type="struts.form.QuKuanForm" />
   
 
  </form-beans>
 

  <global-exceptions />
  <global-forwards />
  <action-mappings >
    <action
      attribute="cunKuanForm"
      input="/cunKuan.jsp"
      name="cunKuanForm"
      path="/cunKuan"
      scope="request"
      type="org.springframework.web.struts.DelegatingActionProxy" />
    <action
      attribute="loginForm"
      input="/login.jsp"
      name="loginForm"
      path="/login"
      scope="request"
      type="org.springframework.web.struts.DelegatingActionProxy" />
    <action
      attribute="regForm"
      input="/reg.jsp"
      name="regForm"
      path="/reg"
      scope="request"
      type="org.springframework.web.struts.DelegatingActionProxy" />
    <action
      attribute="quKuanForm"
      input="/quKuan.jsp"
      name="quKuanForm"
      path="/quKuan"
      scope="request"
      type="org.springframework.web.struts.DelegatingActionProxy" />
    <action path="/logout" type="struts.action.LogoutAction" />

  </action-mappings>
 
  <message-resources parameter="struts.ApplicationResources" />
 
   <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/applicationContext.xml" />
  </plug-in> 
 
</struts-config>



这是登陆LoginAction 的一部分:

/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package struts.action;

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

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import po.Customer;
import struts.form.LoginForm;
import dao.CustomerDao;
import dao.ICustomerDao;


public class LoginAction extends Action {
private ICustomerDao cdao;
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub
int account = loginForm.getAccount();
String password = loginForm.getPassword();

// Customer cus = new CustomerDao().getCustomerByAccount(account);
Customer cus = cdao.getCustomerByAccount(account);
if(cus==null || !cus.getPassword().equals(password)){//登陆不成功
         return new ActionForward("/error.jsp");
}
request.getSession().setAttribute("cus", cus);
request.getSession().setAttribute("admin", "admin");
return new ActionForward("/ope.jsp");

}
public ICustomerDao getCdao() {
return cdao;
}
public void setCdao(ICustomerDao cdao) {
this.cdao = cdao;
}
}





这是ICustomerDao 接口:
package dao;

import po.Customer;

public interface ICustomerDao {
   public abstract boolean insertCustomer(Customer cus);
  
   public abstract boolean updateCustomer(Customer cus);
  
   public abstract Customer getCustomerByAccount(int account);
  
}




这是hibernate 调用数据库的模板:
package dao;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import po.Customer;

public class CustomerDao2 extends HibernateDaoSupport implements ICustomerDao{


public Customer getCustomerByAccount(int account) {
return (Customer)this.getHibernateTemplate().get(Customer.class, account);
}

public boolean insertCustomer(Customer cus) {

return false;
}

public boolean updateCustomer(Customer cus) {
// TODO Auto-generated method stub
return false;
}

}


现在问题是用户一登陆,就报上面的异常,查了一天都没找出原因?
[/color]
分享到:
评论
1 楼 yuanke 2008-09-10  
dao如下:
public class UserDao{
HibernateTemplate ht;
SessionFactory sessionFactory ;
public void setSessionFactory(SessionFactory sessionFactory){
   this.ht=new HibernateTemplate(sessionFactory);
}
}

就ok了无需继承HibernateDaoSupport

相关推荐

    gethibernatetemplate的find方法

    gethibernatetemplate的find方法,find(String queryString);find(String queryString , Object value);find(String queryString, Object[] values);findByExample(Object exampleEntity);findByExample(Object ...

    手机充值卡充值

    return (Card)this.getHibernateTemplate().get(Card.class, cardPass); } @Override public void updateCard(Card card) { // TODO Auto-generated method stub this.getHibernateTemplate().update(card...

    getHibernateTemplate()有模糊查询和 分页

    getHibernateTemplate()有模糊查询和 分页getHibernateTemplate()有模糊查询和 分页

    getHibernateTemplate

    getHibernateTemplate()方法

    jsp中调用dao的getHibernateTemplate()时,报空指针

    这样,DAO 对象中继承自 HibernateDaoSupport 的属性并没有被正确地初始化,导致 getHibernateTemplate() 方法返回空值。 解决这个问题的方法是,从 Spring 配置文件中获取 ApplicationContext 对象,然后从中获取 ...

    getHibernateTemplate()使用方法

    整合了hibernate的getHibernateTemplate()使用方法 全面详细 带有相应的例子

    hibernate模板类详解

    find(String queryString , Object value); 示例:this.getHibernateTemplate().find("from bean.User u where u.name=?", "test"); 这样的例子里面还有很多

    getHibernateTemplate分页-模糊查询

    getHibernateTemplate分页-模糊查询.hibernate查询以及分页查询等方法使用。

    getHibernateTemplate()查询

    getHibernateTemplate()查询 hibernate hql

    hibernate保存不到数据1

    解决getHibernateTemplate().save ()不能将数据保存到数据库的问题JusterDu 2016-03-15 08:38:57 1857

    spring_MVC源码

    02. `id` int(10) unsigned NOT NULL AUTO_INCREMENT, 03. `name` varchar(45) NOT NULL, 04. `psw` varchar(45) NOT NULL, 05. PRIMARY KEY (`id`) 06.) 建好表后,生成实体类 [java] view ...

    ssh(structs,spring,hibernate)框架中的上传下载

    12. return (Tfile) getHibernateTemplate().get(Tfile.class, fileId); 13. } 14. public void save(Tfile tfile) 15. { 16. getHibernateTemplate().save(tfile); 17. getHibernateTemplate().flush(); 18. } 19. ...

    图书查询-Java-Web程序设计教程-[共2页].pdf

    在 DAO 实现类 BookDAO.java 代码如下: public List getRequiredBookByName(String name){ try{ List books=this.getHibernateTemplate(). find("from Book where bookname like '%"+name+"%'"); return books; }...

    客户关系管理系统框架搭建(二)

    this.getHibernateTemplate().save(entity); } @Resource(name="sessionFactory") //注入sessionFactory public void setSessionFactoryDI(SessionFactory sessionFactory) { ...

    Hibernate中Criteria的完整用法.docx

    Spring 的框架提供了getHibernateTemplate ().findByCriteria(detachedCriteria) 方法可以很方便地根据DetachedCriteria 来返回查询结 果。 DetachedCriteria 提供了 2 个静态方法 forClass(Class) 或 forEntityName...

    三大框架下分页源代码

    return ((Long)list.get(0)).intValue(); } catch (RuntimeException re) { log.error("delete failed", re); throw re; } } Action里的代码实现: private Integer totalElements;//总记录数 ...

    Struts2 Spring hibernate 国际化 表单验证 安全退出

    这是之前分页的升级版 带国际化 表单验证 用户登录 安全退出 功能都实现了... List list= this.getHibernateTemplate().find("from Students where username=? and password=?", param); return list.isEmpty(); }

    hibernate执行原生sql语句

    Hibernate 提供了多种方式来执行原生 SQL 语句,其中之一是使用 `Session.createSQLQuery()` 方法,该方法返回一个 `SQLQuery` 对象,该对象提供了执行原生 SQL 语句的方法。 例如,我们可以使用以下代码来执行一个...

    Hibernate使用技巧汇总

    public class UserDAO extends HibernateDaoSupport implements IUserDAO { public void insertUser(User user) { getHibernateTemplate().saveOrUpdate(user); } } &lt;br&gt; 上面的...

    spring 理解文件HibernateDaoSupport

    .相同点:在applicationConext.xml中 ... HibernateDaoSupport: 在impl中要调用的方法要getHibernateTemplate().delete(user); UserDaoHiberateImpl: 在impl中要调用的方法要hibernateTemplate.save(user);

Global site tag (gtag.js) - Google Analytics