【发布时间】:2023-03-13 21:44:02
【问题描述】:
我正在以下网站尝试示例应用程序:
JSF 2, PrimeFaces 3, Spring 3 & Hibernate 4 Integration Project
但我发现在运行项目时,我得到:
严重:向 org.springframework.web.context.ContextLoaderListener 类的侦听器实例发送上下文初始化事件的异常 org.springframework.beans.factory.BeanCreationException:创建 ServletContext 资源 [/WEB-INF/applicationContext.xml] 中定义的名称为“UserService”的 bean 时出错:设置 bean 属性“userDAO”时无法解析对 bean“UserDAO”的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:在 ServletContext 资源 [/WEB-INF/applicationContext.xml] 中定义名称为“UserDAO”的 bean 创建错误 [/WEB-INF/applicationContext.xml]
但是,在applicationContext.xml文件中,相关代码如下:
<!-- Beans Declaration -->
<bean id="User" class="com.otv.model.User"/>
<!-- User Service Declaration -->
<bean id="UserService" class="com.otv.user.service.UserService">
<property name="userDAO" ref="UserDAO" />
</bean>
<!-- User DAO Declaration -->
<bean id="UserDAO" class="com.otv.user.dao.UserDAO">
<property name="sessionFactory" ref="SessionFactory" />
</bean>
<!-- Session Factory Declaration -->
<bean id="SessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="DataSource" />
<property name="annotatedClasses">
<list>
<value>com.otv.model.User</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
这些类确实存在于相关包中,如下所示以及各种配置文件的位置。
我可以看到本教程和我的实现之间的唯一区别是我使用的是 NetBeans 7.2 而不是 Eclipse。
有人知道这是为什么吗?
【问题讨论】:
-
-
类UserDAO定义在包包com.otv.user.dao中;
-
我的意思是 Spring bean 定义。如果它不存在,它就没有机会被注入。
-
我是 Spring 的新手,所以我不太确定你的意思。但是 applicationContext.xml 指的是存在于所述包中的 UserService bean。
-
继续跟踪异常跟踪的原因链,您可能会在底部找到真正的潜在错误。到目前为止,您发布的跟踪表明 Spring 无法创建 UserService,因为它依赖于 UserDAO,并且创建 UserDAO 时出错。您需要找出创建 UserDAO 时的错误是什么(这又可能是创建 SessionFactory 的错误,等等)。
标签: spring