Cause de l'Absence de trouvé de driver pour
Je suis en train de l'unité de test (JUnit) d'un DAO, j'ai créé. Je suis l'aide de Printemps que mon cadre, mon DAO (JdbcPackageDAO) s'étend SimpleJdbcDaoSupport. Les tests de la classe (JdbcPackageDAOTest) s'étend AbstractTransactionalDataSourceSpringcontexttests. J'ai remplacé la configLocations comme suit:
protected String[] getConfigLocations(){
return new String[] {"classpath:company/dc/test-context.xml"};
}
Mon test-context.xml fichier est défini comme suit:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="dataPackageDao" class="company.data.dao.JdbcPackageDAO">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
<property name="url" value="jdbc:hsqldb:hsql://localhost"/>
<property name="username" value="sa" />
<property name="password" value="" />
</bean>
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>company/data/dao/jdbc.properties</value>
</list>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
</beans>
Je suis en utilisant HSQL que mon backend, il fonctionne en mode autonome. Mon IDE de choix est eclipse. Quand je lance la classe de test JUnit voici mon message d'erreur (ci-dessous). Je n'ai pas la moindre idée de pourquoi sa passe. hsql.jar est sur mon chemin de génération en fonction de l'Éclipse.
org.springframework.des transactions.CannotCreateTransactionException: impossible d'ouvrir la Connexion JDBC pour la transaction; nested exception java.sql.SQLException: Ne convient pas trouvé de driver jdbc:hsqldb:hsql://localhost au org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:219) au org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:377) au org.springframework.test.AbstractTransactionalSpringContexttests.startNewTransaction(AbstractTransactionalSpringContexttests.java:387) au org.springframework.test.AbstractTransactionalSpringContexttests.onSetUp(AbstractTransactionalSpringContexttests.java:217) au org.springframework.test.AbstractSingleSpringContextTests.setUp(AbstractSingleSpringContextTests.java:101) à junit.cadre.Cas de test.runBare(cas de test.java:128) au org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:76) à junit.cadre.Verdict$1.protéger(Verdict.java:106) à junit.cadre.Verdict du test.runProtected(Verdict.java:124) à junit.cadre.Verdict du test.exécuter(Verdict.java:109) à junit.cadre.Cas de test.exécuter(cas de test.java:120) à junit.cadre.TestSuite.runTest(TestSuite.java:230) à junit.cadre.TestSuite.exécuter(TestSuite.java:225) au org.eclipse.jdt.interne.junit.runner.junit3.JUnit3TestReference.exécuter(JUnit3TestReference.java:130) au org.eclipse.jdt.interne.junit.runner.TestExecution.exécuter(TestExecution.java:38) au org.eclipse.jdt.interne.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) au org.eclipse.jdt.interne.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) au org.eclipse.jdt.interne.junit.runner.RemoteTestRunner.exécuter(RemoteTestRunner.java:386) au org.eclipse.jdt.interne.junit.runner.RemoteTestRunner.principale(RemoteTestRunner.java:196) Causés par: java.sql.SQLException: Ne convient pas trouvé de driver jdbc:hsqldb:hsql://localhost à java.sql.DriverManager.getConnection(Source Inconnue) à java.sql.DriverManager.getConnection(Source Inconnue) au org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:291) au org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:277) au org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:259) au org.springframework.jdbc.datasource.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:241) au org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:182) 18 de plus ...
Vous devez vous connecter pour publier un commentaire.
Afin d'avoir HSQLDB registre lui-même, vous avez besoin pour accéder à ses jdbcDriver classe. Vous pouvez le faire de la même manière que dans ce exemple.
Qu'il déclenche l'initialisation statique de jdbcDriver classe, qui est:
"aucun pilote approprié" signifie habituellement que la syntaxe de l'URL de connexion est incorrecte.
Bon alors voici la solution. La plupart des tout le monde fait vraiment de bons points, mais aucun n'a résolu le problème (MERCI pour l'aide). Voici la solution que j'ai trouvé pour travailler.
Ma conjecture est qu'il avait quelque chose à voir avec la façon dont Ganymède lit pots dans /web-inf/lib du dossier. Mais qui sait... Ça fonctionne maintenant.
Si vous regardez votre chaîne de connexion initiale:
L'Hypersonique docs suggèrent que vous êtes absent un alias après localhost:
http://hsqldb.org/doc/guide/ch04.html
Il semble que vous n'êtes pas en spécifiant un nom de base de données pour se connecter à, doit aller quelque chose comme
grande, j'ai eu le même problème. De l'avis de tous, est de vérifier l'url jdbc sintax
Peut-on importer le pilote (org.hsqldb.jdbcDriver) dans l'un de vos fichiers source? (Pour vérifier que la classe est en fait sur votre chemin de classe).
Si vous ne pouvez pas importer, alors vous pourriez essayer y compris hsqldb.jar dans votre build path.
J'ai eu le même problème avec le printemps, communes-dbcp et oracle 10g.
En utilisant cette URL que j'ai eu la "aucun pilote approprié' erreur: jdbc:oracle:[email protected]:1521:kinangop
L'URL ci-dessus est manquant complète du côlon juste avant le @. Après la correction que l'erreur a disparu.
lorsque vous essayez d'exécuter la source de données à l'aide de la connectivité statique de la méthode main, nous avons d'abord besoin d'exécuter connexion de base de données. Ce que nous pouvons réaliser dans eclipse comme ci-dessous.
1) ouvrez n'importe quel IDE(Eclipse ou RAD) après l'ouverture de l'espace de travail par défaut IDE sera ouvert en JAVA prospective. Essaie de passer de java à la base de données prospective dans le but de créer la source de données virtuelles connectivité de base de données.
2)dans la base de données prospective entrer dans tous les détails comme les nom d'utilisateur, Mot de passe et l'URL du particulier schéma.
3), puis essayez d'exécuter la méthode main pour accéder à la base de données.
Cela permettra de résoudre le "serverName undefined".
Que certains ont répondu avant, cette ligne de code résolu le problème
Mais mon application est en cours d'exécution dans certains matous mais uniquement dans une installation, j'ai dû ajouter ce code.
Il se pourrait que
ne peuvent pas être résolus dans un fichier. Regardez l'exemple de programme ici:
Exemple de programme de HSQLDB
Voir si vous pouvez obtenir que le travail d'abord, et ensuite voir si vous pouvez prendre que les informations de configuration et de l'utiliser dans le Ressort de haricot de configuration.
Bonne chance!
Je pense que votre HSQL URL est fausse. Elle devrait également inclure le nom de base de données,
donc quelque chose comme
si mabase est le nom de votre base de données (fichier). Ne comprenant pas ce qui peut (je ne suis pas sûr si c'est le cas ici) confondre l'analyse de l'URL, ce qui peut conduire à la DriverManagerDS penser que votre pilote n'est pas adapté (il est trouvé, mais il pense qu'il n'est pas bon)
Ne sais pas si ça en vaut la peine, mais j'ai eu un problème similaire où j'ai été faire un "java.sql.SQLException: Aucun pilote approprié trouvé d'erreur". J'ai trouvé ce fil de discussion lors de la recherche d'une solution.
La façon dont j'ai fini par résoudre mon problème a été de renoncer à l'aide de java.sql.DriverManager pour obtenir une connexion et au lieu construit une instance de org.hsqldb.jdbc.jdbcDataSource et utilisé.
La cause de mon problème (je crois) avait à faire avec le chargeur de classe de la hiérarchie et le fait que le JRE était en cours d'exécution Java 5. Même si j'ai pu réussir à charger le jdbcDriver classe, le chargeur de classe derrière java.sql.DriverManager était au plus haut, au point qu'il ne pouvait pas voir la hsqldb.jar j'avais besoin.
De toute façon, juste de mettre cette note ici au cas où quelqu'un d'autre tombe avec un problème similaire.
J'ai été confronté à un problème similaire et à ma grande surprise, le problème était dans la version de Java.
java.sql.DriverManager vient de rt.jar n'a pas pu charger mon "pilote de COM.ibm.db2.jdbc.app.DB2Driver".
J'ai mis à jour à partir du jdk 5 et jdk 6 et cela a fonctionné.
Dans certains cas, vérifier les droits (de propriété).