引入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的名称为对象名,而不要填类名
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的名称为对象名,而不要填类名
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货