2010-12-16 130 views
0

J'ai une application J2EE qui utilise Spring 3.0 + la dernière version d'Hibernate (3.6) et que je veux déployer sur JBoss 6 CR1.Je ne trouve pas la source de données jndi lors du déploiement de l'application J3EO spring3 + hibernate JBoss 6

Mais je suis tombé sur une exception indiquant que la source de données est introuvable lorsque j'ai déployé l'application.

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 

J'ai vérifié la console JMX de JBoss Application Server et la source de données que je déclarais au printemps est sous espace de noms java.

Je delcared la source de données dans mon application context.xml comme

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

Dans le fichier persistence.xml je déclarais:

<persistence-unit name="persistenceUnit" transaction-type="JTA"> 
     <provider>org.hibernate.ejb.HibernatePersistence</provider> 
     <jta-data-source>java:/ThisIsMyDataSource</jta-data-source> 
</persistence-unit> 

Une source de données avec un nom appelé ThisIsMyDataSource est dans le dossier deploy de/jboss/server/default/deploy

Il semblerait que mon application essayait de rechercher le bean pour que javax.sql.datasource soit autowire dans les const russes et échoué.

Est-ce que quelqu'un sait comment résoudre ce problème?

Répondre

0

Cela ressemble à une faute de frappe. Pouvez-vous essayer avec

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

au lieu de

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