2015-11-14 8 views
5

Ich versuche, mein Programm laufen zu lassen, habe ich immer diese Ausnahme:BeanCreationException: Kann keine eingebetteten Datenbank-Treiberklasse für NONE Datenbanktyp bestimmen

Caused by: org.springframework.beans.factory.BeanCreationException: Cannot determine embedded database driver class for database type NONE. If you want an embedded database please put a supported one on the classpath. 
at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.getDriverClassName(DataSourceProperties.java:137) 
at org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration$NonEmbeddedConfiguration.dataSource(DataSourceAutoConfiguration.java:117) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:497) 
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162) 
... 45 more 

ich alle Abhängigkeiten über gradle importieren:

buildscript { 
repositories { 
    mavenCentral() 
} 
dependencies { 
    classpath("org.springframework.boot:spring-boot-gradle-plugin:1.2.7.RELEASE") 
} 
} 

apply plugin: 'java' 
apply plugin: 'eclipse' 
apply plugin: 'idea' 
apply plugin: 'spring-boot' 

jar { 
baseName = 'flatify-backend-service' 
version = '0.1.0' 
} 

repositories { 
mavenCentral() 
} 

sourceCompatibility = 1.8 
targetCompatibility = 1.8 

dependencies { 
compile("org.springframework.boot:spring-boot-starter-web") 
compile 'org.springframework.boot:spring-boot-starter-data-jpa' 
compile 'org.hibernate:hibernate-core:4.3.6.Final' 
compile 'javax.servlet:javax.servlet-api:3.1.0' 
compile 'org.javassist:javassist:3.15.0-GA' 
compile 'mysql:mysql-connector-java:5.1.31' 
compile 'commons-dbcp:commons-dbcp:1.4' 
testCompile("junit:junit") 
testCompile("org.springframework:spring-test") 
} 

task wrapper(type: Wrapper) { 
gradleVersion = '2.5' 
} 

Wie Sie sehen können, bin ich das Hinzufügen der mysql-Connector ist nicht das, was die Treiberklassen zu meinem Projekt hinzufügen soll? Fehle ich etwas?

Ich habe nur zur letzten Ausnahme hinzugefügt, weil alle anderen durch diese verursacht werden. Wenn Sie weitere Informationen benötigen, lassen Sie es mich bitte wissen.

Dank

Mein Config Klasse:

@Configuration 
@EnableTransactionManagement 
public class PersistenceJPAConfig { 

@Bean 
public LocalContainerEntityManagerFactoryBean entityManagerFactory() { 
    LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean(); 
    em.setDataSource(dataSource()); 
    em.setPackagesToScan(new String[] { "at.flatify.persistance.entity" }); 

    JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); 
    em.setJpaVendorAdapter(vendorAdapter); 
    em.setJpaProperties(additionalProperties()); 

    return em; 
} 


@Bean(destroyMethod = "close") 
public DataSource dataSource() { 
    DriverManagerDataSource dataSource = new DriverManagerDataSource(); 
    dataSource.setDriverClassName("com.mysql.jdbc.Driver"); 
    dataSource.setUrl("jdbc:mysql://localhost:3306/flatify"); 
    dataSource.setUsername("user"); 
    dataSource.setPassword("password"); 

    return dataSource; 
} 

@Bean 
public PlatformTransactionManager transactionManager(EntityManagerFactory emf){ 
    JpaTransactionManager transactionManager = new JpaTransactionManager(); 
    transactionManager.setEntityManagerFactory(emf); 

    return transactionManager; 
} 

@Bean 
public PersistenceExceptionTranslationPostProcessor exceptionTranslation(){ 
    return new PersistenceExceptionTranslationPostProcessor(); 
} 

Properties additionalProperties() { 
    Properties properties = new Properties(); 
    properties.setProperty("hibernate.hbm2ddl.auto", "create-drop"); 
    properties.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL5Dialect"); 
    return properties; 
} 

} 
+0

Mögliche Duplikat oder fügen Sie einfach [Frühling Boot - nicht bestimmen kann, eingebettete Datenbanktreiber-Klasse für Datenbanktyp NONE] (http://stackoverflow.com/questions/24074749/spring-boot-kann nicht-embedded-database-driver-class-for-database-type bestimmen –

Antwort

0

Frühling Boot ist nicht in der Lage, die Treiber zu verwenden, um zu bestimmen. Sie müssen die folgende Eigenschaft irgendwo angeben: spring.datasource.driverClassName Es gibt andere Eigenschaften, die Sie angeben müssen, überprüfen Sie die Dokumentation.

+0

Ja, ich habe eine Configuration-Klasse, in der ich alle diese Eigenschaften angegeben habe. –

+0

Können Sie die relevanten Eigenschaften einfügen (einschließlich aller Verbindungs-URLs) Dies würde helfen? Ersetzen Sie alle Anmeldeinformationen natürlich durch Dummy. –

+0

Wenn Sie diesen Stack-Trace betrachten, sieht es so aus, als ob DataSourceAutoConfiguration das Setup, das Sie in Ihrer Konfiguration haben, missachtet. (Da Sie Springboot verwenden) Haben Sie versucht, DataSourceAutoConfiguration.class auszuschließen? Abgesehen davon, wenn Sie jedoch die Springboot-Route gehen möchten, müssen Sie spring.datasource.driverClassName in einer application.properties-Datei angeben, es ist nicht ausreichend, nur den Namen der Treiberklasse in Ihrer Konfiguration festzulegen. –

0

Ich konfrontiert das gleiche Problem, löste ich es einfach durch Hinzufügen einer eclipselink-javax.persistence-2.0 Glas in den Klassenpfad meines Projekts. können Sie es von dem unten angegebenen Link herunterladen. die fügen Sie die folgende Abhängigkeit

<dependency> 
<groupId>org.eclipse.persistence</groupId> 
<artifactId>javax.persistence</artifactId> 
<version>2.0.0</version> 
</dependency> 

Jar download Link

Verwandte Themen