Struts+Spring+Hibernate里面DAO报空指针问题 附加信息: 通过调试 发现 继承了HibernateDaoSupport的那个AdministratorDAO在返回HibernateTemplate是为Null.但检查Spring和Hibernate的配置又确实没见到问题。抠抠头。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 同意楼上,可能是findByProperty传递了NULL参数 在调试的过程中我试过多种参数。最开始是在action里面生成一个po对象并一直传递下来给servic类。后来传过String是直接写死的参数。再后来也传过int,都是一个问题。DAO并没有获得HibernateTemplate.可以排除不是空参数问题。 这个容易,你看看AdministratorDAO.java:99这个位子,肯定有空值,你判断下 public List findByProperty(String propertyName, Object value) { log.debug("finding User instance with property: " + propertyName + ", value: " + value); try { String queryString = "from User as model where model." + propertyName + "=?";99: return getHibernateTemplate().find(queryString, value); } catch (RuntimeException re) { log.error("find by property name failed", re); throw re; } }第99行已经注明,这个DAO其实是hibernate自动生成的。如果说空值那我推断是getHibernateTemplate()这个返回了null,也就是上文说的 hibernateTemplate为null 现在看来就是getHibernateTemplate()返回Null,请问各位大大遇到类似的问题时是怎么解决的? 这个我也遇到过是,是你的service没有配置相应的property中的DAO没有配置好 那肯定是你的AdministratorDAO中没有注入HibernateTemplat 这打半是因为你用到了spring的配置文件来加载Hibernate配置信息。HibernateTemplate必须是在spring的配置文件加载后,才可以被加载到内存中;如果直接在测试类中new 一个接口实现类,然后调用gethibernatetemplate()来实现功能的crud.则会包空指针异常。 出现空指针异常!你在你Spring中的xml配置了信息了么上面的异常我都看了!不是说没有注入DAO的对象问题!应该是Dao对象调用了执行HQL的语句的时候出了错误!也就是说你从Action有一个值然后通过Service调用DAO这里说问题在DAO这里就是说方法已经调用了!这就很明显了!你的action并没有给传过去值!org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77) 这个异常不是很明显么!web的拦截器拦截你传来的参数,这个需要你在XML中配置的!否则action是根本不可能传过去参数的! 下载文件问题 高手请进,出现了乱码,非静态变量问题? jsp下载时怎样屏蔽对话框? 一个表单中2个Action问题 JS的联动问题(混合Struts) tomcat http编码问题急 WEB程序用框架有什么好处!欢迎讨论! 请问 :JSP中数据库的问题?? 关于Before start of result set的错误,怎么解决? 有哪几种方法做分页比较好的? jxl 操作Excel日期转换问题 java 中文乱码?????????
这个位子,肯定有空值,你判断下
log.debug("finding User instance with property: " + propertyName
+ ", value: " + value);
try {
String queryString = "from User as model where model." + propertyName + "=?";
99: return getHibernateTemplate().find(queryString, value);
} catch (RuntimeException re) {
log.error("find by property name failed", re);
throw re;
}
}第99行已经注明,这个DAO其实是hibernate自动生成的。如果说空值那我推断是getHibernateTemplate()这个返回了null,也就是上文说的 hibernateTemplate为null
上面的异常我都看了!不是说没有注入DAO的对象问题!
应该是Dao对象调用了执行HQL的语句的时候出了错误!
也就是说你从Action有一个值然后通过Service调用DAO
这里说问题在DAO这里就是说方法已经调用了!
这就很明显了!你的action并没有给传过去值!
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
这个异常不是很明显么!web的拦截器拦截你传来的参数,这个需要你在XML中配置的!
否则action是根本不可能传过去参数的!