引入spring
2.1.struts配置
除Form与Action配置外,还需配置 spring插件,内容主要是三个xml文件:
/WEB-INF/applicationContext.xml,/WEB-INF/serviceContext.xml,/WEB-INF/viewContext.xml2.2\applicationContext.xml
主要包括四部分内容:
hibernate的数据库连接管理,会话管理(包括xxx.hbm.xml加载),事务管理,用户DAO代理2.3.serviceContext.xml
????是关于业务类的配置,暂没用到2.4.viewContext.xml
????关于ACTION的配置,暂没用到2.5.关于DAO
必须继承父类:HibernateDaoSupport============================================
运行异常1#org.springframework.beans.factory.BeanDefinitionStoreException: Error registering bean with name 'dataSource' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Bean class [org.apache.commons.dbcp.BasicDataSource] not found; nested exception is java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource
java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1332)
解决方案:
差两个包:
commons-dbcp.jar,commons-pool.jar
错误2:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'SZTypeDAO' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: net/sf/hibernate/Session
java.lang.NoClassDefFoundError: net/sf/hibernate/Session
解决方案:DAO在继承父类HibernateDaoSupport时,应将包hibernate改为hibernate3org.springframework.orm.hibernate3.support.HibernateDaoSupport
错误3:
警告: /hibernate.cfg.xml not found
org.hibernate.HibernateException: /hibernate.cfg.xml not found
at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:1087)解决方案:DAO中不再需要如下代码:        org.hibernate.cfg.Configuration cfg = new Configuration();
        Session session = cfg.configure().buildSessionFactory().openSession() ;
        Transaction tran = session.beginTransaction() ;而是:
this.getHibernateTemplate().save(dto);
也不用打开事务与关闭事务错误4:信息: ContextLoaderPlugIn for Struts ActionServlet 'action', module '': initialization completed in 3375 ms
java.lang.NullPointerException
at myprj.dao.SZTypeDAO.insert(SZTypeDAO.java:17)
解决方案:1\修改Action的父类与其中对DAO的调用
将原先struts中的Action改为ActionSupport,
将如下语句:
SZTypeDAO dao = new SZTypeDAO() ;
改为:          WebApplicationContext wac = this.getWebApplicationContext();
          SZTypeDAO dao = (SZTypeDAO)wac.getBean("sZTypeDAO") ;错误5:org.springframework.beans.factory.NoSuchBeanDefinitionException: 
No bean named 'SZTypeDAO' is defined: org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [dataSource,sessionFactory,sZTypeDAO,transactionManager,SZTypeDAOProxy]; root of BeanFactory hierarchy
rg.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'SZTypeDAO' is defined: org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [dataSource,sessionFactory,sZTypeDAO,transactionManager,SZTypeDAOProxy]; root of BeanFactory hierarchy
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:351)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedBeanDefinition(AbstractBeanFactory.java:640)解决方案: SZTypeDAO dao = (SZTypeDAO)wac.getBean("sZTypeDAO") ;其中bean的名称为对象名,而不要填类名

解决方案 »

  1.   

    http://community.csdn.net/Expert/TopicView3.asp?id=4764017
      

  2.   

    好像是某人写了本整合struts,hinbernate, spring的书,现在国内居然如此流行这个,还有个名字叫ssh,我一开始还以为是secure shell。单纯为了hibernate而用spring,真的是毫无必要,完全是误导!
      

  3.   

    我家离你家很近,你人亲自过来取吧! 我把源代码全部给你,还有我帮你安装好JDK6 + tomcat6 + myeclipse8 ,顺便我帮你部署好框架,帮你整合SSH2或者SSH ,然后我帮你一步一步一句一句的告诉你语法和每句代码的意思,教你做SSH项目。 直到你完全懂java为止。