2016-07-31 19 views
0

Ich habe mit einer Spring Boot App auf Heroku gespielt, aber ich bin auf einen Fehler gestoßen, dass ich nicht finden kann, eine Lösung zu finden.Spring Boot Verbindung zu Postgres-Datenbank auf Heroku

Ich versuche, auf eine Postgres-Datenbank nach dem Heroku Tutorial (link) zu verbinden, aber ich erhalte diesen Fehler immer und immer wieder:

Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: 
Failed to instantiate [javax.sql.DataSource]: 
Factory method 'dataSource' threw exception; nested exception is java.lang.IllegalStateException: No supported DataSource type found 

Hier ist die Config-Datei Ich verwende:

spring.datasource.url=${JDBC_DATABASE_URL} 
spring.datasource.driverClassName=org.postgresql.Driver 
spring.datasource.username=username 
spring.datasource.password=password 
spring.datasource.removeAbandoned=true 

Und die DatabaseConfig Klasse:

@Configuration 
public class DatabaseConfig { 
    @Bean @Primary 
    @ConfigurationProperties(prefix = "spring.datasource") 
    public DataSource dataSource() { 
     return DataSourceBuilder.create() 
       .build(); 
    } 
} 

mir jemand in th Punkt Die richtige Richtung. Was mache ich falsch?

+0

Hallo, Sie haben richtig hinzugefügt, um die Maven-Abhängigkeit für den PostGreSQL JDBC-Treiber (pom.xml)? ' org.postgresql postgresql 9,4-1201-jdbc4 ' –

+0

Ja - ich habe auch die Maven Abhängigkeit hinzugefügt – Alin

+0

Haben Sie erstellen und binden an einen PostgreSQL-Dienst der Heroku Befehlszeile? $ heroku addons: hinzufügen heroku-postgresql: hobby-dev –

Antwort

1

Ich stieß auf genau dieses Problem und schaffte es, es zu lösen. Das Problem ist nicht spezifisch für Heroku, da es reproduziert werden kann, indem die App lokal mit derselben Konfiguration ausgeführt wird.

Gemäß dem Stacktrace ist es klar, dass eine DataSource im Klassenpfad nicht gefunden wurde. Nach Frühjahr Boot-Dokumentation gefunden here, entweder Sie Feder-boot-Starter-jdbc oder Feder-boot-Starter-data-JPA automatisch tomcat-jdbc, zu erhalten, die die bevorzugt zu sein scheint, können im Frühling Boot.

Ich habe die folgende Abhängigkeit pom.xml, die das Problem gelöst:

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-jdbc</artifactId> 
</dependency>