service代码:
@Transactional
public void add(Theme transientTheme) throws ThemeExistingException {
System.out.println(themeDao.findByProperty("themeName", transientTheme.getThemeName()).size());
if(themeDao.findByProperty("themeName", transientTheme.getThemeName()).size() != 0) {
throw new ThemeExistingException("主题名" + transientTheme.getThemeName() + "已存在");
} else {
themeDao.save(transientTheme);
}
}
dao代码:
public void save(Theme transientInstance) {
log.debug("saving Theme instance");
try {
getHibernateTemplate().save(transientInstance);
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}
我调用service的时候,dao里的代码已经执行,并且成功添加了数据,但确报了一个空指针异常,
java.lang.NullPointerException
at org.apache.struts2.components.template.TemplateEngineManager.getTemplateEngine(TemplateEngineManager.java:102)
at org.apache.struts2.components.UIBean.mergeTemplate(UIBean.java:555)
at org.apache.struts2.components.UIBean.end(UIBean.java:519)
at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42)
at org.apache.jsp.jsp.message.message_jsp._jspx_meth_s_005fdebug_005f0(message_jsp.java:122)
at org.apache.jsp.jsp.message.message_jsp._jspService(message_jsp.java:91)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
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.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:88)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:164)
at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
....
相关推荐
标题提到的问题是“struts2+spring+hibernate整合中spring注入出错,页面中报空指针异常”,这通常是由于Spring的依赖注入没有正确配置导致的。 首先,让我们深入了解一下Struts2、Spring和Hibernate各自的核心概念...
在 SSH 框架中,DAO(Data Access Object)是负责与数据库交互的对象,而 HibernateTemplate 则是 Hibernate 框架提供的一个模板类,用于简化数据库操作。通常情况下,我们在 DAO 中使用 getHibernateTemplate() ...
当Spring容器创建一个bean实例时,它会根据配置自动填充该bean的所有依赖,从而避免空指针异常的发生。因此,确保所有依赖都被正确配置和注入是避免此类问题的关键。 总结一下,Spring框架的继承机制和空指针异常...
Hibernate 是一个流行的 Java 持久层框架,但是在实际开发中,我们经常会遇到各种异常。了解这些异常的原因和解决方案是非常重要的。本文将介绍 Hibernate 中的一些常见异常,包括 ...
在开发Java应用程序,特别是涉及到持久化层操作时,Hibernate是一个常用的ORM(对象关系映射)框架。然而,由于各种依赖库的问题,可能会遇到多种异常。本文将深入探讨Hibernate常见的异常,以及与之相关的依赖库。 ...
同时,项目中可能包含了一些常见的注意事项和陷阱,例如数据类型转换问题、空指针异常、事务处理不当等,这些都是实际开发中需要注意的地方。通过这个项目,你不仅能学会如何使用Hibernate,还能提升解决实际问题的...
当Hibernate尝试保存一个实体时,如果该实体中的某个被标记为`@NotNull`或在映射文件中定义为`not-null="true"`的属性值为null或者指向一个尚未持久化的瞬态(transient)对象,就会抛出此异常。解决方法是确保在...
同时,注意处理可能出现的空指针异常和数据一致性问题,确保程序的健壮性。 总之,理解并熟练掌握Hibernate的一对一、一对多和多对多关联关系,对于提升Java EE应用的开发效率和代码质量至关重要。通过实例化这些...
开发者在使用Hibernate时,可以更放心地处理可能为空的对象,避免空指针异常。 总结,Hibernate 5.2.10.Final版本不仅提供了基本的ORM功能,还在OSGi支持、JPA元模型生成、审计日志、地理空间数据处理以及Java 8 ...
1. `NullPointerException`: 这个异常发生在尝试访问或操作一个`null`引用的对象时。要解决这个问题,开发者应该检查变量是否已初始化,并在使用前确保它们非空。可以使用`if (object != null)`来避免空指针异常。 ...
3. **初始化关联对象**:在使用双向一对一关联时,确保在需要时正确初始化并设置双方的引用,否则可能引发空指针异常。 4. **事务管理**:由于涉及数据库操作,所以在保存或更新关联对象时,需要确保在事务中进行,...
2. 错误处理:对可能出现的异常进行捕获和处理,如空指针、连接异常等。 3. 事务管理:合理设计事务边界,避免数据不一致。 通过这个“hibernate人生中第一个成功及完美程序”,初学者可以快速理解Hibernate的基本...
Hibernate 是一个开源的对象关系映射(ORM)框架,它允许Java开发者使用面向对象的方式来操作数据库。这个框架将数据库操作转化为对Java对象的操作,简化了数据持久化的复杂度。以下是对Hibernate的一些关键知识点的...
Hibernate 是一个开源的O/R mappimg的框架,基于JDBC提供了一种持久性数据管理的方案,相对于EntityBean来说是相当轻量级的。由于Hibernate是基于 JDBC的,所以它的数据库查寻的能力相对于CMP来说也是异常强大的,...
在IT行业中,Hibernate是一个非常重要的Java持久化框架,它简化了数据库操作,使得开发者能够更加专注于业务逻辑,而不是底层的数据存取细节。本教程将深入探讨如何使用Hibernate构建一个完整的CRUD(创建、读取、...
在提供的 "myApp" 压缩包中,你将找到一个已经配置好的 Spring MVC + Hibernate Maven 空框架,可以直接使用。只需根据实际需求修改数据库配置、创建对应的实体类、DAO、Service 以及 Controller,就可以快速搭建起 ...
在使用 Spring 和 Hibernate 进行开发时,可能会遇到 StringIndexOutOfBoundsException 异常,这个异常的出现是由于 Hibernate 的映射文件和数据库中表的字段不一致所导致的。在本文中,我们将详细介绍这个异常的...
**hibernate完整的一个项目** 本项目旨在提供一个完整的Hibernate框架的实现,涵盖了从环境搭建到实际应用的全过程。Hibernate是Java开发中的一个强大的对象关系映射(ORM)框架,它简化了数据库与Java对象之间的...