2017-01-19 2 views
10

Ich versuche Frühling Boot-App mit Hibernate 5 und Postgres erstellen 9. Jetzt habe ich nächsten Fehler.Frühlings-Boot-Autokonfiguration für Datenquelle

Parameter 0 of constructor in org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration required a bean of type 'javax.sql.DataSource' that could not be found. 
    - Bean method 'dataSource' not loaded because @ConditionalOnProperty (spring.datasource.jndi-name) did not find property 'jndi-name' 
    - Bean method 'dataSource' not loaded because @ConditionalOnBean (types: org.springframework.boot.jta.XADataSourceWrapper; SearchStrategy: all) did not find any beans 

Obwohl, ich habe hinzugefügt spring.datasource * Eigenschaften:

spring.datasource.url=jdbc:postgresql://localhost:5432/postgres 
spring.datasource.username=postgres 
spring.datasource.password=root 

Mein pom.xml:

<properties> 
    <hibernate.version>5.2.6.Final</hibernate.version> 
    <spring.data.version>1.10.6.RELEASE</spring.data.version> 
</properties> 

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.4.3.RELEASE</version> 
</parent> 

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-autoconfigure</artifactId> 
    </dependency> 

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

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-tx</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-orm</artifactId> 
     <version>${spring.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-jpa</artifactId> 
     <version>${spring.data.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <version>${hibernate.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.projectlombok</groupId> 
     <artifactId>lombok</artifactId> 
     <version>1.16.12</version> 
    </dependency> 

    <dependency> 
     <groupId>org.postgresql</groupId> 
     <artifactId>postgresql</artifactId> 
     <version>9.4.1212</version> 
    </dependency> 
</dependencies> 

Bericht:

========================= 
AUTO-CONFIGURATION REPORT 
========================= 


Positive matches: 
----------------- 

AopAutoConfiguration matched: 
- @ConditionalOnClass found required classes 'org.springframework.context.annotation.EnableAspectJAutoProxy', 'org.aspectj.lang.annotation.Aspect', 'org.aspectj.lang.reflect.Advice' (OnClassCondition) 
- @ConditionalOnProperty (spring.aop.auto=true) matched (OnPropertyCondition) 

AopAutoConfiguration.JdkDynamicAutoProxyConfiguration matched: 
- @ConditionalOnProperty (spring.aop.proxy-target-class=false) matched (OnPropertyCondition) 

DataSourceAutoConfiguration matched: 
- @ConditionalOnClass found required classes 'javax.sql.DataSource', 'org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType' (OnClassCondition) 

DataSourceAutoConfiguration#dataSourceInitializer matched: 
- @ConditionalOnMissingBean (types: org.springframework.boot.autoconfigure.jdbc.DataSourceInitializer; SearchStrategy: all) did not find any beans (OnBeanCondition) 

DataSourceTransactionManagerAutoConfiguration matched: 
- @ConditionalOnClass found required classes 'org.springframework.jdbc.core.JdbcTemplate', 'org.springframework.transaction.PlatformTransactionManager' (OnClassCondition) 

DataSourceTransactionManagerAutoConfiguration.TransactionManagementConfiguration matched: 
- @ConditionalOnMissingBean (types: org.springframework.transaction.annotation.AbstractTransactionManagementConfiguration; SearchStrategy: all) did not find any beans (OnBeanCondition) 
... 
DataSourceAutoConfiguration.EmbeddedDatabaseConfiguration: 
Did not match: 
- EmbeddedDataSource did not find embedded database (DataSourceAutoConfiguration.EmbeddedDatabaseCondition) 

DataSourceAutoConfiguration.PooledDataSourceConfiguration: 
Did not match: 
- AnyNestedCondition 0 matched 2 did not; NestedCondition on DataSourceAutoConfiguration.PooledDataSourceCondition.PooledDataSourceAvailable PooledDataSource did not find supported DataSource; NestedCondition on DataSourceAutoConfiguration.PooledDataSourceCondition.ExplicitType @ConditionalOnProperty (spring.datasource.type) did not find property 'type' (DataSourceAutoConfiguration.PooledDataSourceCondition) 

DataSourceAutoConfiguration.TomcatDataSourceJmxConfiguration: 
Did not match: 
- @ConditionalOnClass did not find required class 'org.apache.tomcat.jdbc.pool.DataSourceProxy' (OnClassCondition) 

DataSourcePoolMetadataProvidersConfiguration.CommonsDbcp2PoolDataSourceMetadataProviderConfiguration: 
Did not match: 
- @ConditionalOnClass did not find required class 'org.apache.commons.dbcp2.BasicDataSource' (OnClassCondition) 

DataSourcePoolMetadataProvidersConfiguration.CommonsDbcpPoolDataSourceMetadataProviderConfiguration: 
Did not match: 
- @ConditionalOnClass did not find required class 'org.apache.commons.dbcp.BasicDataSource' (OnClassCondition) 

DataSourcePoolMetadataProvidersConfiguration.HikariPoolDataSourceMetadataProviderConfiguration: 
Did not match: 
- @ConditionalOnClass did not find required class 'com.zaxxer.hikari.HikariDataSource' (OnClassCondition) 

DataSourcePoolMetadataProvidersConfiguration.TomcatDataSourcePoolMetadataProviderConfiguration: 
Did not match: 
- @ConditionalOnClass did not find required class 'org.apache.tomcat.jdbc.pool.DataSource' (OnClassCondition) 

DataSourceTransactionManagerAutoConfiguration.DataSourceTransactionManagerConfiguration: 
Did not match: 
- @ConditionalOnSingleCandidate (types: javax.sql.DataSource; SearchStrategy: all) did not find any beans (OnBeanCondition) 

Irgendwelche Ideen? In den meisten Tutorials ist alles sehr Standard und sehr einfach, es scheint, ich vermisse ein kleines Teil ..

+0

haben Sie Mysql Stecker Abhängigkeit ? –

Antwort

13

Sie vermissen mehrere Klassen (meist Pool bezogen) auf Ihrem Klassenpfad. Die einfachste Lösung ist die Feder Boot Starter für JPA zu verwenden, das ist:

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

Wenn Sie dies tun, können Sie die folgenden Abhängigkeiten entfernen, da sie alle Teil des Starter sind:

<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-context</artifactId> 
    <version>${spring.version}</version> 
</dependency> 
<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-tx</artifactId> 
    <version>${spring.version}</version> 
</dependency> 
<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-orm</artifactId> 
    <version>${spring.version}</version> 
</dependency> 
<dependency> 
    <groupId>org.springframework.data</groupId> 
    <artifactId>spring-data-jpa</artifactId> 
    <version>${spring.data.version}</version> 
</dependency> 

<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-core</artifactId> 
    <version>${hibernate.version}</version> 
</dependency> 

die alternative Lösung über einen Pool-Provider classpath manuell hinzuzufügen, ist die Standardvorgabe Feder-boot-Starter-data-JPA ist tomcat-jdbc aber jede Verbindung Pool-Anbieter verwenden können, möchten Sie, dass aufgeführt ist in the documentation.

2

gut die obige lösung könnte funktionieren aber in meinem fall mit weblogic 11g über lösung konnte mir nicht helfen. also diese Lösung anhängen, damit jeder, der mit diesem Problem zu kämpfen hat, es nützlich findet.

Lösung:

Hinzufügen von Datasource-Bean-Konfiguration in der Komponente Scan Classpath wird dies für Servlets beheben 2.5 wie WebLogic 10.3.6 (11 g) wie unten

@Configuration 
public class DBConfig{ 

     @Bean 
     public DataSource dataSource(){ 
      DriverManagerDataSource dataSource = new DriverManagerDataSource(); 
      dataSource.setDriverClassName("oracle.jdbc.driver.OracleDriver"); 
      dataSource.setUrl("your url"); 
      dataSource.setUsername("username"); 
      dataSource.setPassword("password"); 
      return dataSource; 
     } 

}