Не удается найти источник данных jndi при развертывании J3EE-приложения spring3 + hibernate на JBoss 6 - PullRequest
0 голосов
/ 16 декабря 2010

У меня есть приложение 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

Я проверил консоль JMX сервера приложений JBoss, и источник данных, который я объявил в 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

Похоже, что мое приложение пыталось найти bean-компонент для javax.sql.datasource для автоматической передачи в конструкторы некоторых других классов и не удалось.

Кто-нибудь знает, как решить эту проблему?

1 Ответ

0 голосов
/ 16 декабря 2010

Похоже на опечатку. Можете ли вы попробовать с

<jee:jndi-lookup id="dataSource" jndi-name="java:/ThisIsMyDataSource"/>

вместо

<jee:jndi-lookup id="dataSource" jndi-name="java:ThisIsMyDataSource"/>
...