我有一个J2EE应用程序,它使用Spring 3.0 +最新版本的Hibernate(3.6),我想在JBoss 6 CR1上部署它。
但是我遇到了一个例外,说明在部署应用程序时找不到数据源。
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [javax.sql.DataSource] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:920) [:3.0.5.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:789) [:3.0.5.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:703) [:3.0.5.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:795) [:3.0.5.RELEASE]
at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:723) [:3.0.5.RELEASE]
... 159 more
我检查了JBoss Application Server的JMX控制台,我在Spring中声明的数据源在java命名空间下。
我将application-context.xml中的数据源视为
<jee:jndi-lookup id="dataSource" jndi-name="java:ThisIsMyDataSource"/>
在persistence.xml文件中我声明了:
<persistence-unit name="persistenceUnit" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/ThisIsMyDataSource</jta-data-source>
</persistence-unit>
名为ThisIsMyDataSource的数据源位于/ jboss / server / default / deploy
的deploy文件夹中看起来我的应用程序试图查找javax.sql.datasource的bean以自动装入其他类的构造函数并失败。
有谁知道如何解决这个问题?
答案 0 :(得分:0)
这似乎是一个错字。你能试试
吗?<jee:jndi-lookup id="dataSource" jndi-name="java:/ThisIsMyDataSource"/>
而不是
<jee:jndi-lookup id="dataSource" jndi-name="java:ThisIsMyDataSource"/>