2015-11-14 4 views
5

Sto cercando di eseguire il mio programma, ho sempre arrivare questa eccezione:BeanCreationException: Impossibile determinare incorporato classe driver di database per tipo di database NESSUNO

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 

Sto importando tutte le dipendenze via Gradle:

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' 
} 

Come potete vedere sto aggiungendo il connettore mysql non è quello che dovrebbe aggiungere le classi di driver al mio progetto? Mi manca qualcosa?

Ho aggiunto solo all'ultima eccezione, perché tutti gli altri sono causati da questo. Se avete bisogno di altri dettagli, fatemelo sapere.

Grazie

classe mia configurazione:

@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

Eventuali duplicati di [Primavera Boot - Impossibile determinare incorporato classe driver di database per tipo di database NONE] (http://stackoverflow.com/questions/24074749/spring-boot-can non-determina-embedded-database-driver-classe-per-tipo-database) –

risposta

0

avvio primavera è in grado di determinare quale driver da utilizzare. È necessario specificare la seguente proprietà da qualche parte: spring.datasource.driverClassName Ci sono altre proprietà che è necessario specificare, controllare la documentazione.

+0

Sì, ho una classe di configurazione in cui ho specificato tutte queste proprietà. –

+0

È possibile incollare le proprietà pertinenti (compresi eventuali URL di connessione) Ciò potrebbe aiutare? Sostituendo ovviamente tutte le credenziali con quelle fittizie. –

+0

Guardando la traccia dello stack, sembra che DataSourceAutoConfiguration stia prendendo a calci ignorando il setup che hai nella tua configurazione. (visto che stai usando l'avvio a molla) Hai provato ad escludere DataSourceAutoConfiguration.class? A prescindere da ciò, se si desidera eseguire il percorso Springboot, è necessario fornire in modo specifico spring.datasource.driverClassName in un file application.properties, non è sufficiente impostare solo il nome della classe del driver nella configurazione. –

0

Ho affrontato lo stesso problema, l'ho risolto aggiungendo semplicemente un jar eclipselink-javax.persistence-2.0 nel classpath del mio progetto. puoi scaricarlo dal link qui sotto. o semplicemente aggiungere il aggiungere il seguente dipendenza

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

Jar download Link