关于ssh搭配框架问题

jsp_style 2012-10-25 06:00:37
小弟、刚学ssh所以不是很理解。就按照老实讲的步骤来的。但是其实不是很理解写的那些配置文件都是什么意思。不废话。遇到个问题求助。。。。
我在spring配置文件applicationContext.xml中配置关联了两个实体类
<!-- 配置dao -->
<bean id="userdao" class="dao.impl.UserDaoImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="bookdao" class="dao.impl.BookDaoImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

<!-- 配置biz -->
<bean id="userbiz" class="biz.impl.UserBizImpl">
<property name="userDao" ref="userdao"></property>
</bean>
<bean id="bookbiz" class="biz.impl.BookBizImpl">
<property name="bookdao" ref="bookdao"></property>
</bean>

<!-- 配置action -->
<bean id="useraction" class="action.UserAction">
<property name="userBiz" ref="userbiz"></property>
</bean>
<bean id="bookaction" class="action.BookAction">
<property name="bookBiz" ref="bookbiz"></property>
</bean>
但是启动tomcat就报错。。。。郁闷。错误信息如下。。。
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'bookbiz' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: 'sessionFactory' or 'hibernateTemplate' is required at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1403)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:290)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:287)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:189)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:562)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:871)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:423)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:272)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:196)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:926)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:889)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
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:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.IllegalArgumentException: 'sessionFactory' or 'hibernateTemplate' is required
at org.springframework.orm.hibernate3.support.HibernateDaoSupport.checkDaoConfig
(HibernateDaoSupport.java:118)
at org.springframework.dao.support.DaoSupport.afterPropertiesSet(DaoSupport.java:44)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1460)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1400)
... 36 more
很郁闷啊。如果只是配置一个userbiz就能正常运行。两个的花就报错了。求大神帮助。果断给分。。。
...全文
129 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jsp_style 2012-10-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

把你运行错误的代码提出来,“是不是因为我配置了两个biz才报的错” 两个biz ? 这个是怎么配置的?贴出来看看。
[/Quote]

感谢帮忙想问题。。已经知道问题了。我的实现biz接口的实现类extends了HibernateDaoSupport所以报错了。。
jsp_style 2012-10-25
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
">

<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation" value="classpath:hibernate.cfg.xml">
</property>
</bean>

<!-- 事务管理 -->
<!-- 定义一个事务管理器 -->
<bean id="myHibTransactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory">
</property>
</bean>
<!--定义事务通知-->
<tx:advice id="txAdvice" transaction-manager="myHibTransactionManager">
<!--声明事务规则-->
<tx:attributes>
<tx:method name="save*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="del*" propagation="REQUIRED" />
<!--对其他方法要求只读事务-->
<tx:method name="*" propagation="SUPPORTS" read-only="true" />
</tx:attributes>
</tx:advice>
<aop:config>
<!--定义一个切面,即定义哪些方法应用这些规则-->
<aop:pointcut id="bizMethods" expression="execution(* biz.*.*(..))" />
<!--将事务通知和切面组合(织入)-->
<aop:advisor advice-ref="txAdvice" pointcut-ref="bizMethods" />
</aop:config>

<!-- 配置dao -->
<bean id="userdao" class="dao.impl.UserDaoImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="bookdao" class="dao.impl.BookDaoImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 配置biz -->
<bean id="userbiz" class="biz.impl.UserBizImpl">
<property name="userDao" ref="userdao"></property>
</bean>
<bean id="bookbiz" class="biz.impl.BookBizImpl">
<property name="bookDao" ref="bookdao"></property>
</bean>
<!-- 配置action -->
<bean id="useraction" class="action.UserAction">
<property name="userBiz" ref="userbiz"></property>
</bean>
<bean id="bookaction" class="action.BookAction">
<property name="bookBiz" ref="bookbiz"></property>
</bean>




</beans>

这个是我的ApplicationContenxt.xml
dw_java08 2012-10-25
  • 打赏
  • 举报
回复
把你运行错误的代码提出来,“是不是因为我配置了两个biz才报的错” 两个biz ? 这个是怎么配置的?贴出来看看。
jsp_style 2012-10-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

XML code

<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
>
<property name="configLocation"
value="file:src/hibernate……
[/Quote]
抱歉。刚在吃饭没看到。。。那些都有的。是不是因为我配置了两个biz才报的错?如果我去掉一个只留userbiz登录就能成功
JavaMan 2012-10-25
  • 打赏
  • 举报
回复

<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
>
<property name="configLocation"
value="file:src/hibernate.cfg.xml">
</property>
</bean>
<bean name="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate" >
<property name="sessionFactory" ref="sessionFactory" >
</property>
</bean>

有这个东西吗
jsp_style 2012-10-25
  • 打赏
  • 举报
回复
大神都在吃饭啊。。。谁帮我解决问题呀。感激不尽。!!

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧