`

hibernate 与 spring 松散配置的问题

    博客分类:
  • ssh
阅读更多

因为有朋友的回复,所有重做了一个SSH的例子,实现S/S/H松散耦合:
将spring配置文件applicationContext.xml改为下面的样子:

xml 代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">  
  3.   
  4. <beans>  
  5.   
  6.   
  7.     <bean id="sessionFactoryId"  
  8.         class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  
  9.         <property name="configLocation">  
  10.             <value>/WEB-INF/hibernate.cfg.xml</value>  
  11.         </property>  
  12.     </bean>  
  13.        
  14.     <bean name="/add" class="com.yourcompany.struts.action.AddAction"  
  15.         singleton="false">  
  16.         <property name="dao">  
  17.             <ref bean="UsersDAO" />  
  18.         </property>  
  19.     </bean>  
  20.   
  21.   
  22.     <bean id="UsersDAO" class="com.ssh.dao.impl.UsersDAO">  
  23.         <property name="sessionFactory">  
  24.             <ref bean="sessionFactoryId" />  
  25.         </property>  
  26.     </bean>  
  27. </beans>  

主要是让spring 引用hibernate的配置.
下面是我的hiberante配置文件的内容.

xml 代码
  1. <?xml version='1.0' encoding='UTF-8'?>  
  2. <!DOCTYPE hibernate-configuration PUBLIC   
  3.           "-//Hibernate/Hibernate Configuration DTD 3.0//EN"   
  4.           "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">  
  5.   
  6. <!-- Generated by MyEclipse Hibernate Tools.                   -->  
  7. <hibernate-configuration>  
  8.   
  9.     <session-factory>  
  10.         <property name="connection.username">root</property>  
  11.         <property name="connection.url">  
  12.             jdbc:mysql://localhost:3306/test   
  13.         </property>  
  14.         <property name="dialect">  
  15.             org.hibernate.dialect.MySQLDialect   
  16.         </property>  
  17.         <property name="myeclipse.connection.profile">  
  18.             mysqltest   
  19.         </property>  
  20.         <property name="connection.driver_class">  
  21.             com.mysql.jdbc.Driver   
  22.         </property>  
  23.         <!---mapping resource="com/ssh/dao/impl/Users.hbm.xml" /-->  
  24.   
  25.   
  26.     </session-factory>  
  27.   
  28. </hibernate-configuration>  

 这样配置是没有问题的,但是不能加映射文件,就是上面被注释的部分,<!---mapping resource="com/ssh/dao/impl/Users.hbm.xml" /-->如果加上句,则会出错,Tomcat上不会报错,只是找不到action!

大家说说,这种用 spring引用hibernate的配置方法,映射应该在哪儿配置???

我用的MyEclipse 5.1.1 GA   Tomcat5.5.23

分享到:
评论
6 楼 M249140611 2007-12-13  
我这样配出现以下错误:
Initialization of bean failed; nested exception is java.lang.UnsupportedClassVersionError: org/hibernate/cfg/SecondPass (Unsupported major.minor version 49.0)
java.lang.UnsupportedClassVersionError: org/hibernate/cfg/SecondPass (Unsupported major.minor version 49.0)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1687)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:968)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1409)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1289)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
at org.hibernate.cfg.Configuration.add(Configuration.java:386)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:427)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:482)
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1465)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1433)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1414)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1390)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1325)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:651)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1091)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:396)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:233)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:145)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:277)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:313)
at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:139)
at org.springframework.web.struts.ContextLoaderPlugIn.createWebApplicationContext(ContextLoaderPlugIn.java:353)
at org.springframework.web.struts.ContextLoaderPlugIn.initWebApplicationContext(ContextLoaderPlugIn.java:296)
at org.springframework.web.struts.ContextLoaderPlugIn.init(ContextLoaderPlugIn.java:225)
at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:869)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:336)
at javax.servlet.GenericServlet.init(GenericServlet.java:256)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:935)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:823)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3420)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3608)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:738)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:347)
at org.apache.catalina.core.StandardService.start(StandardService.java:497)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:2190)
at org.apache.catalina.startup.Catalina.start(Catalina.java:512)
at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)

2007-12-13 14:42:31 StandardWrapper[/Demo:action]: Marking servlet action as unavailable
2007-12-13 14:42:31 StandardContext[/Demo]: Servlet /Demo threw load() exception
javax.servlet.UnavailableException
at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:880)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:336)
at javax.servlet.GenericServlet.init(GenericServlet.java:256)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:935)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:823)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3420)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3608)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:738)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:347)
at org.apache.catalina.core.StandardService.start(StandardService.java:497)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:2190)
at org.apache.catalina.startup.Catalina.start(Catalina.java:512)
at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)
5 楼 txy920 2007-11-28  
你在spring的配置文件中 sessionBean的配置中加上这么一段
<property name="mappingResources">
    <list>
      <value>xx.hbm.xml</value>
    </list>
</property>
4 楼 laiseeme 2007-11-28  
可能是没有找到那个路径,试试classpath
3 楼 qingfeng825 2007-11-28  
wubaodan  :你好,我也感觉配置mapping是否对和action应该没有关系,但是确实是加上mapping 后找不到action,主要是服务器也不报错,所以找不到一点突破口.

movingboy :你说的方法我也试了,不行啊,它提示的错误是: Unknown entity: com.ssh.dao.impl.Users; nested exception is org.hibernate.MappingException: Unknown entity: com.ssh.dao.impl.Users
我想这证明hibernate.cfg.xml找到了.
2 楼 movingboy 2007-11-27  
不知道是不是配置文件放置的路径问题?我一般是把hibernate.cfg.xml放在class目录里,如下面的配置:

	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

		<property name="configLocation">
			<value>classpath:hibernate.cfg.xml</value>
		</property>
	</bean>
1 楼 wubaodan 2007-11-27  
找不到Action不是mapping resource的原因吧

相关推荐

    Struts2,Spring与Hibernate整合应用,学生成绩管理系统

    - **Hibernate配置**:配置Hibernate以适应Spring环境,包括在Spring配置文件中定义SessionFactorybean,使其能够读取Hibernate配置文件(如hibernate.cfg.xml),从而初始化Hibernate SessionFactory。 #### 四、...

    图解MyEclipse配置struts+hibernate+spring

    "图解MyEclipse配置struts+hibernate+spring"是一个关于如何在MyEclipse集成开发环境中整合这三个流行框架的指南。这个主题涉及到Java EE(J2EE)开发中的重要组成部分:Struts作为MVC框架,Hibernate作为ORM工具,...

    springMVC+hibernate+spring4.3 jar包整合

    本话题主要关注的是将Spring MVC、Hibernate 4和Spring 4.3这三大框架整合在一起,以便于开发出功能强大、性能优异的Java Web应用。下面我们将深入探讨这三个框架的核心概念、整合过程以及在整合过程中可能遇到的...

    精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例完整源码

    Spring还包含了Spring MVC,与Struts类似,用于构建Web应用,但更加强调模块化和松散耦合。 这些技术的整合使用,通常被称为“SSH”或“Spring+Struts+Hibernate”架构,可以实现一个完整的MVC三层结构,提供强大的...

    Struts2与Hibernate和Spring组合开发

    在"Hibernate与Struts2和Spring组合开发.pdf"文档中,可能会详细介绍如何配置这三个框架,如何在MyEclipse中创建项目,如何编写Action、DAO和Service层的代码,以及如何通过XML或注解实现组件间的依赖注入。...

    chinamobile的struts+hibernate+spring源码

    Spring还包含了众多模块,如Spring MVC、Spring JDBC、Spring ORM等,能与其他框架(如Struts和Hibernate)无缝集成,为开发者提供了全面的解决方案。 结合“chinamobile的struts+hibernate+spring源码”,我们可以...

    C:\Struts,Hibernate,Spring集成开发宝典\Struts,Hibernate,Spring集成开发宝典光盘资料3.rar

    Struts2相较于Struts1,引入了更多特性和改进,如更灵活的动作配置、拦截器机制等,同时它也能与Spring无缝集成,使得在大型项目中可以充分利用Spring的管理功能。 集成这三个框架的主要目的是为了构建一个松散耦合...

    Struts+hibernate+Spring整合开发

    在配置上,Spring的ApplicationContext配置文件会包含Struts的Action和Hibernate的数据源、SessionFactory等,实现组件间的协调工作。 **学习资源**: 1. `spring2.0-reference_final_zh_cn.chm`:这是Spring 2.0的...

    struts2.0,hibernate,spring

    总的来说,Struts2、Hibernate和Spring的结合使用极大地提高了Java Web开发的效率和质量,它们各自解决了一部分问题,共同构建了一个强大的企业级应用开发框架。理解并熟练掌握这些框架,对于提升Java开发者的技能...

    Struts、Hibernate和Spring

    Struts、Hibernate和Spring是Java开发中常用的三个开源框架,分别对应于Web应用的三层架构:表现层、业务层和持久层。本文旨在探讨如何利用这三个框架构建松散耦合、可扩展的应用架构。 首先,Struts作为表现层框架...

    Struts,Hibernate,Spring整合jar包

    - 配置Spring:创建spring配置文件,定义bean并注入依赖,如Struts的Action类和Hibernate的数据访问对象。 - 配置Struts:在struts-config.xml中指定Spring的ActionForm和Action类。 - 配置Hibernate:设置...

    struts+Hibernate+Spring三大框架的整合

    在提供的压缩包中,"struts2+hibernate3.2+spring2.5集成步骤.pdf"很可能是详细介绍了这个整合过程的教程,包括配置文件的编写、代码结构的组织以及可能出现的问题和解决方案。"spring开发指南(夏昕).pdf"则是关于...

    strusts2&hibernate&spring整合开发

    4. **模型对象(Entities)**:对应数据库中的表,通过Hibernate的注解或者XML配置文件建立与数据库表的映射关系。 5. **视图层**:Struts2支持多种视图技术,如JSP、FreeMarker等,用于展示拍卖系统的结果页面,如...

    struts+hibernate+spring读书笔记

    2. **Hibernate与Spring集成**:Spring提供HibernateTemplate或SessionFactoryBean,统一管理Hibernate的SessionFactory和Session,简化数据库操作。 通过这样的整合,开发者可以利用Struts处理请求控制,Hibernate...

    SSHAPI,绝对chm格式,包括Hibernate,spring2.0,struts-2

    通过Hibernate,我们可以将Java类与数据库表对应,Java对象与数据库记录绑定,实现了对象和关系数据库之间的松散耦合。Hibernate提供了一种灵活的数据访问接口,支持HQL(Hibernate Query Language)查询,使得...

    Spring4+SpringMVC4+Hibernate4整合源码

    通过源码,你可以看到如何配置Spring的ApplicationContext,SpringMVC的DispatcherServlet,以及如何在Hibernate中设置实体类和映射文件,理解数据访问对象(DAO)和业务服务层的设计模式。 6. **实践应用**:在...

    Spring2.5+Hibernate3.2开发手册

    而Hibernate 则是一个对象关系映射(ORM)工具,它简化了Java应用与数据库之间的交互,通过将Java对象转化为SQL语句,实现了数据持久化。 Spring 2.5 版本引入了许多增强特性,包括: 1. **依赖注入(Dependency ...

    struts2+hibernate+spring整合导入包

    Spring可以通过配置文件或注解来初始化和管理Struts2的Action和Hibernate的SessionFactory,从而实现请求的处理和数据库操作。 在实际开发中,"struts2+hibernate+spring整合导入包"可能包含以下内容:Struts2的jar...

    hibernate3+spring3+springMVC框架

    在IT行业中,构建高效、可维护的企业级应用是至关重要的,而"hibernate3+spring3+springMVC框架"就是一种常见的解决方案。这个框架组合利用了Spring框架的全面管理能力,Hibernate的数据持久化优势,以及Spring MVC...

    图书管理系统(struts+hibernate+spring+ext)

    《图书管理系统:深入理解Struts、Hibernate与Spring的整合应用》 图书管理系统是软件开发领域中的一个典型示例,它涵盖了常见的CRUD(创建、读取、更新、删除)操作,以及用户管理、权限控制等多个功能模块。在这...

Global site tag (gtag.js) - Google Analytics