conectar - spring postgresql 10
El arranque de primavera no puede cargar DataSource usando el controlador PostgreSQL (2)
¿De dónde vino esto: database.driverClassName=org.postgresql.Driver
? ¿No quieres decir spring.datasource.driverClassName
?
He desarrollado con éxito un prototipo utilizando Spring Boot 1.0.2.RELEASE (era 1.0.1.RELEASE hasta hoy).
He buscado y buscado y probado soluciones como: La configuración automática del origen de datos jdbc de Spring Boot falla en Tomcat independiente. Spring Boot / Spring Data import.sql no ejecuta Spring-Boot-1.0.0.RC1
Todos sugieren dejar que Spring Boot haga el trabajo. Cuando uso H2, todo funciona, pero cuando intento cambiar a PostgreSQL, obtengo:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ''entityManagerFactory'' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration.entityManagerFactory(org.springframework.orm.jpa.JpaVendorAdapter)] threw exception; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [javax.sql.DataSource] is defined
Mi build.gradle es como sigue:
loadConfiguration()
def loadConfiguration() {
def environment = hasProperty(''env'') ? env : ''dev''
project.ext.envrionment = environment
println "Environment is set to $environment"
def configFile = file(''config.groovy'')
def config = new ConfigSlurper("$environment").parse(configFile.toURL())
project.ext.config = config
}
buildscript {
ext {
springBootVersion = ''1.0.2.RELEASE''
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle- plugin:${springBootVersion}")
}
}
apply plugin: ''java''
apply plugin: ''eclipse''
apply plugin: ''idea''
apply plugin: ''spring-boot''
apply plugin: ''war''
apply plugin: ''groovy''
war {
baseName = ''test''
version = ''0.0.1-SNAPSHOT''
}
configurations {
providedRuntime
}
repositories {
mavenCentral()
}
dependencies {
compile("org.springframework.boot:spring-boot-starter-web:${springBootVersion}")
compile("org.springframework.boot:spring-boot-starter-thymeleaf:${springBootVersion}")
compile("org.springframework.boot:spring-boot-starter-jdbc:${springBootVersion}")
compile("org.springframework.boot:spring-boot-starter-data-jpa:${springBootVersion}")
compile("postgresql:postgresql:9.1-901.jdbc4")
//compile("com.h2database:h2")
testCompile("org.springframework.boot:spring-boot-starter-test:${springBootVersion}")
}
task wrapper(type: Wrapper) {
gradleVersion = ''1.11''
}
application.properties:
spring.jpa.database=POSTGRESQL
spring.jpa.show-sql=false
spring.jpa.hibernate.ddl-auto=update
spring.database.driverClassName=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost/cms
spring.datasource.username=cms
spring.datasource.password=NA
Eliminando application.properties y cambiando la dependencia de nuevo a H2 y todo está bien.
No puedo encontrar donde estoy haciendo mal :-(
alguna vez intente volver a importar su proyecto mvn si las dependencias no se actualizan, también agregue el siguiente a su pom.xml
<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.1-901.jdbc4</version>
</dependency>