坑爹的getHibernateTemplate() 为Null

来源:互联网 发布:nginx 常用第三方模块 编辑:程序博客网 时间:2024/05/16 11:11

这几天写了一个SSH2整合,以前是做过的,但不知怎么地这次死活执行不了。

一执行到Action从数据库中读取数据就出错。



代码是由 MyEclipse 自动生成的,只加了接口和Service

Spring注入之类,经再三对照也没有任何问题,真是活见鬼了。


错误一直停留在getHibernateTemplate()上

public User findById(java.lang.Integer id) {log.debug("getting User instance with id: " + id);try {User instance = (User) getHibernateTemplate().get("com.test.bean.User", id);return instance;} catch (RuntimeException re) {log.error("get failed", re);throw re;}}

使用 System.out.println(getHibernateTemplate());  返回是Null


到最后发现竟然是Struts.xml中的问题

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"><struts><package name="main" extends="struts-default" namespace="/"><action name="user" class="com.test.action.userAction"><result name="success">index.jsp</result></action><action name="index"><result name="success" >/index.jsp</result></action></package></struts>    


错误在此:
<action name="user" class="com.test.action.userAction">

坑爹的,不知哪篇文章将 class 写成了这样

换成

<action name="user" class="userAction">

问题解决。

总结原因,可能是写了全路径,就自动从文件中取值,因为没注入,就得不到getHibernateTemplate() ,使用userAction是从Spring中取值......