Java 无法解析对bean';数据源';设置bean属性时';数据源'。factory.NoSuchBean定义异常:
这是在我的spring-servlet.xml文件中定义了这个id的beanJava 无法解析对bean';数据源';设置bean属性时';数据源'。factory.NoSuchBean定义异常:,java,xml,spring,hibernate,spring-mvc,Java,Xml,Spring,Hibernate,Spring Mvc,这是在我的spring-servlet.xml文件中定义了这个id的bean <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" p:driverClassName="${jdbc.driverClassName}" p:url="${jdbc.databaseurl}" p:username="${jdbc.
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
p:driverClassName="${jdbc.driverClassName}"
p:url="${jdbc.databaseurl}" p:username="${jdbc.username}"
p:password="${jdbc.password}" />
<mvc:resources location="/resources/" mapping="/resources/**"/>
<mvc:default-servlet-handler/>
<bean id="jspViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/JSP/" />
<property name="suffix" value=".jsp" />
</bean>
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="classpath:messages" />
<property name="defaultEncoding" value="UTF-8" />
</bean>
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
p:location="classpath:jdbc.properties" />
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
p:driverClassName="${jdbc.driverClassName}"
p:url="${jdbc.databaseurl}" p:username="${jdbc.username}"
p:password="${jdbc.password}" />
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation">
<value>classpath:hibernate-cfg.xml</value>
</property>
<property name="configurationClass">
<value>org.hibernate.cfg.AnnotationConfiguration</value>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${jdbc.dialect}</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.connection.SetBigStringTryClob">true</prop>
<prop key="hibernate.jdbc.batch_size">0</prop>
</props>
</property>
</bean>
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- one of the properties available; the maximum file size in bytes -->
<property name="maxUploadSize" value="10000000" />
</bean>
<tx:annotation-driven />
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
</beans>
这是在WEB-INF文件夹中定义的应用程序上下文文件
<?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:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
</beans>
这是我完整的web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>YummyFoods</display-name>
<welcome-file-list>
<welcome-file>/JSP/welcome.jsp</welcome-file>
</welcome-file-list>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>imageServlet</servlet-name>
<servlet-class>com.yummyfoods.spring.servlet.ImageServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>imageServlet</servlet-name>
<url-pattern>/image/*</url-pattern>
</servlet-mapping>
<error-page>
<error-code>404</error-code>
<location>/error</location>
</error-page>
</web-app>
美味食品
/JSP/welcome.JSP
org.springframework.web.context.ContextLoaderListener
春天
org.springframework.web.servlet.DispatcherServlet
1.
春天
/
imageServlet
com.yummyfoods.spring.servlet.ImageServlet
imageServlet
/形象/*
404
/错误
这是我的spring-servlet.xml文件
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
p:driverClassName="${jdbc.driverClassName}"
p:url="${jdbc.databaseurl}" p:username="${jdbc.username}"
p:password="${jdbc.password}" />
<mvc:resources location="/resources/" mapping="/resources/**"/>
<mvc:default-servlet-handler/>
<bean id="jspViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/JSP/" />
<property name="suffix" value=".jsp" />
</bean>
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="classpath:messages" />
<property name="defaultEncoding" value="UTF-8" />
</bean>
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
p:location="classpath:jdbc.properties" />
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
p:driverClassName="${jdbc.driverClassName}"
p:url="${jdbc.databaseurl}" p:username="${jdbc.username}"
p:password="${jdbc.password}" />
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation">
<value>classpath:hibernate-cfg.xml</value>
</property>
<property name="configurationClass">
<value>org.hibernate.cfg.AnnotationConfiguration</value>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${jdbc.dialect}</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.connection.SetBigStringTryClob">true</prop>
<prop key="hibernate.jdbc.batch_size">0</prop>
</props>
</property>
</bean>
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- one of the properties available; the maximum file size in bytes -->
<property name="maxUploadSize" value="10000000" />
</bean>
<tx:annotation-driven />
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
</beans>
类路径:hibernate-cfg.xml
org.hibernate.cfg.AnnotationConfiguration
${jdbc.dial}
真的
真的
0
请帮助我找到路。从外观上看,您正在
DispatcherServlet
上下文配置文件中定义一个数据源,即您指定的spring servlet.xml
。以及根应用程序上下文文件中的entityManagerFactory
。根应用程序上下文中的bean不能引用servlet应用程序上下文文件中的bean。您需要将dataSource
bean移动到hibernate context.xml
文件中。从外观上看,您正在DispatcherServlet
上下文配置文件中定义一个数据源,即指定的spring servlet.xml
。以及根应用程序上下文文件中的entityManagerFactory
。根应用程序上下文中的bean不能引用servlet应用程序上下文文件中的bean。您需要将dataSource
bean移动到hibernate context.xml
文件中。您的依赖项会带来什么?我认为您应该在applicationContext.xml
中包含数据源def,然后hibernate应该会很高兴
所以。。。
类路径:hibernate-cfg.xml
org.hibernate.cfg.AnnotationConfiguration
${jdbc.dial}
真的
真的
0
进入applicationContext.xml
并从springservlet.xml
然后嵌入在会话工厂中的hibernate-cfg.xml应该可以找到它的数据源,并乐于加载
最好将servlet映射和mvc定义与后端内容(bean factory等)隔离开来,因为如果需要的话,将来更容易对其进行更改
你用什么来构建你的应用程序?你的依赖性带来了什么?我认为您应该在
applicationContext.xml
中包含数据源def,然后hibernate应该会很高兴
所以。。。
类路径:hibernate-cfg.xml
org.hibernate.cfg.AnnotationConfiguration
${jdbc.dial}
真的
真的
0
进入applicationContext.xml
并从springservlet.xml
然后嵌入在会话工厂中的hibernate-cfg.xml应该可以找到它的数据源,并乐于加载
最好将servlet映射和mvc定义与后端内容(bean factory等)隔离开来,因为如果需要的话,将来更容易对其进行更改
使用什么构建应用程序?显示Spring应用程序上下文文件。从外观上看,您正在DispatcherServlet上下文配置文件中定义一个数据源。以及根应用程序上下文文件中的entityManagerFactory。根应用程序上下文中的bean不能引用servlet应用程序上下文文件中的bean。您需要将数据源bean移动到另一个xml配置文件。如果您有一个
web.xml
,请发布它……是的。我愿意。我要展示吗it@JnG您可以显示您的hibernate-context.xml文件吗?您应该在applicationContext
中定义bean和commons内容,并在spring servlet.xml
中定义特定于servlet的内容来显示您的spring应用程序上下文文件。从外观上看,您正在DispatcherServlet上下文配置文件中定义一个数据源。以及根应用程序上下文文件中的entityManagerFactory。根应用程序上下文中的bean不能引用servlet应用程序上下文文件中的bean。您需要将数据源bean移动到另一个xml配置文件。如果您有一个web.xml
,请发布它……是的。我愿意。我要展示吗it@JnG您可以显示您的hibernate-context.xml文件吗?您应该在applicationContext
中定义bean和commons内容,并在spring servlet.xml
中定义特定于servlet的内容,那么META-NF/spring/hibernate-context.xml呢。正如我所说,在该文件中定义数据源,而不是spring-servlet.xml。我的WEB-INF文件夹中只有spring-servlet.xml文件和applicationContext.xml。META-NF/spring/hibernate-context.xml如何。正如我所说,在该文件中定义数据源,而不是spring-servlet.xml。我的WEB-INF文件夹中只有spring-servlet.xml文件和applicationContext.xml。如果您有意见,请发表意见。这不是一个答案,我不认为给出完整的代码来回答这个问题会对op有帮助,但这是可以做到的。如果您认为soI找不到这个类路径,请发布代码片段:hibernate-cfg.xml org.hibernate.cfg.AnnotationC