![](/img/trans.png)
[英]Spring Boot: Cannot determine embedded database driver class for database type NONE
[英]Spring boot Bean exception: Cannot determine embedded database driver class for database type NONE
我正在嘗試運行由其他人制作的Spring Boot應用程序。 我嘗試將本地數據庫附加到應用程序,但是當我運行它時,出現以下錯誤;
org.springframework.beans.factory.BeanCreationException:創建名稱為“ org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration”的bean時出錯:自動連接依賴項注入失敗; 嵌套的異常是org.springframework.beans.factory.BeanCreationException:無法自動連線字段:私有javax.sql.DataSource org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration.dataSource; 嵌套的異常是org.springframework.beans.factory.BeanCreationException:創建在類路徑資源[org / springframework / boot / autoconfigure / jdbc / DataSourceAutoConfiguration $ NonEmbeddedConfiguration.class]中定義的名稱為'dataSource'的bean時出錯:通過工廠方法實例化Bean失敗; 嵌套的異常是org.springframework.beans.BeanInstantiationException:無法實例化[javax.sql.DataSource]:工廠方法'dataSource'引發了異常; 嵌套的異常是org.springframework.boot.autoconfigure.jdbc.DataSourceProperties $ DataSourceBeanCreationException:無法確定數據庫類型NONE的嵌入式數據庫驅動程序類。 如果您想要嵌入式數據庫,請在類路徑上放置一個受支持的數據庫。 如果您要從特定配置文件中加載數據庫設置,則可能需要激活它(當前沒有配置文件處於活動狀態)。
我是新來的,我找不到問題所在。 一些細節:
其中xxx =數據庫名稱。
工作台:
Name: Local instance wampmysqld64
Host: localhost
Port: 3306
Server: MySQL Community Server (GPL)
Version: 5.7.18-log
Connector: C++ 1.1.4
Login User: root
Current User: root@localhost
SSL: Disabled
服務器已啟動並正在運行。
編輯
的pom.xml
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>****</groupId>
<artifactId>****</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.6.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.modelmapper</groupId>
<artifactId>modelmapper</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
EDIT2
Application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/xxx
spring.datasource.username=root
spring.datasource.password=root
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQLDialect
spring.jpa.properties.hibernate.id.new_generator_mappings = false
spring.jpa.properties.hibernate.format_sql = true
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
ng.level.org.hibernate.type.descriptor.sql.BasicBinder = TRACE
Application.java
package gdprserver;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.data.rest.RepositoryRestMvcAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;
@SpringBootApplication(exclude = RepositoryRestMvcAutoConfiguration.class)
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(final SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(final String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public ModelMapper modelMapper() {
return new ModelMapper();
}
}
EDIT3
我使用以下命令使用CMD運行Spring Boot應用程序: java -jar xxx.jar
package com.fyakuthibernatespringboot.demo;
@SpringBootApplication
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
異常“無法確定數據庫類型NONE的嵌入式數據庫驅動程序類”。 原因是Spring無法找到定義數據庫的屬性。 它告訴我們它沒有創建/配置數據源所需的信息。
這可能是與IDE相關的問題。 使用Maven構建jar,然后嘗試運行它。 如果您遇到相同的異常,請打開廣口瓶並查看其內部,以確保正確添加了它。
我找到了一種使用Eclipse運行應用程序的解決方案。
在嘗試使用Java Application-> SpringApplication和主要類org.springframework.boot.SpringApplication
來運行應用程序之前。 將主類更改為xxx.Application(其中xxx是項目名稱)有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.