J'ai une application Spring Boot simple (générée via Spring Roo).
La base de données est configurée comme suit :
spring.datasource.driver-class-name=org.hsqldb.jdbcDriver
spring.datasource.url=jdbc\:hsqldb\:mem\:PetClinic
spring.jpa.hibernate.naming.strategy=org.hibernate.cfg.ImprovedNamingStrategy
spring.messages.encoding=ISO-8859-1
spring.messages.fallback-to-system-locale=false
spring.thymeleaf.mode=html
Voici comment j'ai déclaré la dépendance HSQLDB :
org.hsqldb
hsqldb
provided
Lorsque je lance l'application, j'obtiens l'erreur :
Caused by: java.lang.IllegalStateException: Cannot load driver class: org.hsqldb.jdbcDriver
at org.springframework.util.Assert.state(Assert.java:392) ~[spring-core-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.determineDriverClassName(DataSourceProperties.java:214) ~[spring-boot-autoconfigure-1.4.1.RELEASE.jar:1.4.1.RELEASE]
Le module Spring-boot-autoconfigure tente de charger la classe avec la classe utilitaire ClassUtils
qui charge les classes du contexte actuel.
Je me demande si cette méthode fonctionne correctement puisque j'utilise un conteneur Tomcat qui est chargé de charger les dépendances Maven ? Pourquoi même avec le JAR dans le répertoire libs, Spring n'est-il pas capable de le trouver ?