这个问题好奇怪
struts+spring+hibernate开发
下面的是我的applicationContext.xml配置文件
<?xml version= "1.0 " encoding= "UTF-8 "?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN " "http://www.springframework.org/dtd/spring-beans.dtd ">
<beans>
<bean id= "datasource " class= "com.mchange.v2.c3p0.ComboPooledDataSource " destroy-method= "close ">
<property name= "driverClass ">
<value> com.microsoft.jdbc.sqlserver.SQLServerDriver </value>
</property>
<property name= "jdbcUrl ">
<value> jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=blog </value>
</property>
<property name= "properties ">
<props>
<prop key= "c3p0.acquire_increment "> 5 </prop>
<prop key= "c3p0.idle_test_period "> 100 </prop>
<prop key= "c3p0.max_size "> 100 </prop>
<prop key= "c3p0.max_statements "> 0 </prop>
<prop key= "c3p0.min_size "> 10 </prop>
<prop key= "user "> sa </prop>
<prop key= "password "> 123456789 </prop>
</props>
</property>
</bean>
<bean id= "sessionfactory "
class= "org.springframework.orm.hibernate3.LocalSessionFactoryBean ">
<property name= "dataSource ">
<ref bean= "datasource " />
</property>
<property name= "hibernateProperties ">
<props>
<prop key= "hibernate.dialect ">
org.hibernate.dialect.SQLServerDialect
</prop>
<prop key= "hibernate.show_sql "> true </prop>
</props>
</property>
<property name= "mappingResources ">
<list>
<value> com/togv/dao/UserInfo.hbm.xml </value>
</list>
</property>
</bean>
<bean id= "userInfoDAO " class= "com.togv.dao.UserInfoDAO ">
<property name= "sessionFactory ">
<ref local= "sessionfactory " />
</property>
</bean>
<bean id= "userService " class= "com.togv.struts.action.UserService ">
<property name= "userInfoDAO ">
<ref local= "userInfoDAO "/>
</property>
</bean>
</beans>
但是 错误提示确是:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'sessionFactory ' is defined
org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:360)
org.springframework.beans.factory.support.AbstractBeanFactory.getMergedBeanDefinition(AbstractBeanFactory.java:686)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:219)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:149)
org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:541)
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.lookupSessionFactory(OpenSessionInViewFilter.java:223)
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.lookupSessionFactory(OpenSessionInViewFilter.java:207)
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:146)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:75)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
我调用到sessionFactory这个BEAN啊(我调用的是sessionfactory)怎么会提示这样的错误 郁闷
我在web.xml里也配置了
<context-param>
<param-name> contextConfigLocation </param-name>
<param-value> /WEB-INF/applicationContext.xml </param-value>
</context-param>
[解决办法]
把这个类的代码贴出来看看
com.togv.dao.UserInfoDAO
[解决办法]
名字不一样,当然有错。
定义时:用的sessionfactory
<bean id= "sessionfactory " class= "org.springframework.orm.hibernate3.LocalSessionFactoryBean ">
调用时:用的sessionFactory
<bean id= "userInfoDAO " class= "com.togv.dao.UserInfoDAO ">
<property name= "sessionFactory ">
<ref local= "sessionfactory " />
</property>
</bean>
[解决办法]
兄弟要会看错误啊
[解决办法]
我想看看你com.togv.dao.UserInfoDAO里定义的sessionFactory的变量名是什么?你是不是写错了?两个怎么不一样啊?
[解决办法]
'sessionFactory '
一眼就能看得出来...