Java Spring启动Bean异常:无法为数据库类型NONE确定嵌入式数据库驱动程序类

Java Spring启动Bean异常:无法为数据库类型NONE确定嵌入式数据库驱动程序类,java,mysql,spring,spring-boot,mysql-workbench,Java,Mysql,Spring,Spring Boot,Mysql Workbench,我正在尝试运行由其他人制作的spring引导应用程序。我曾尝试将本地数据库连接到应用程序,但当我运行此操作时,会出现以下错误: org.springframework.beans.factory.BeanCreationException:创建名为“org.springframework.boot.autoconfigure.orm.jpa.hibernateJPA自动配置”的bean时出错:自动连线依赖项的注入失败;嵌套异常为org.springframework.beans.factory.

我正在尝试运行由其他人制作的spring引导应用程序。我曾尝试将本地数据库连接到应用程序,但当我运行此操作时,会出现以下错误:

org.springframework.beans.factory.BeanCreationException:创建名为“org.springframework.boot.autoconfigure.orm.jpa.hibernateJPA自动配置”的bean时出错:自动连线依赖项的注入失败;嵌套异常为org.springframework.beans.factory.BeanCreationException:无法自动连接字段:private 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.beanstantiationException:未能实例化[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>
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启动应用程序:
java-jar xxx.jar

异常“无法为数据库类型NONE确定嵌入式数据库驱动程序类”。这是由于Spring无法找到定义数据库的属性造成的。它告诉我们它没有创建/配置数据源所需的信息

这可能是与IDE相关的问题。使用maven构建您的jar并尝试运行它。如果出现相同的异常,请打开jar并查看内部,以确保正确添加了该异常。

异常“无法为数据库类型NONE确定嵌入式数据库驱动程序类。”是由Spring无法找到定义数据库的属性引起的。它告诉我们它没有创建/配置数据源所需的信息


这可能是与IDE相关的问题。使用maven构建您的jar并尝试运行它。如果出现相同的异常,请打开jar并查看其内部,以确保正确添加了该异常。

我找到了一个使用Eclipse运行应用程序的解决方案


在我尝试使用Java application->SpringApplication和主类运行应用程序之前:
org.springframework.boot.SpringApplication
。将主类更改为xxx.Application(其中xxx是projectname)可以正常工作。

我找到了一个用Eclipse运行应用程序的解决方案


在我尝试使用Java application->SpringApplication和主类运行应用程序之前:
org.springframework.boot.SpringApplication
。将主类更改为xxx.Application(其中xxx是项目名称)有效。

您确定您的
Application.properties
文件位于类路径上吗(理想情况下位于
src/main/resources
?还显示
@SpringBootApplication
类application.properties位于
src/main/resources
是。没有spring启动程序jdbc或spring启动程序数据jpa?修复依赖项后,如果spring出于未知原因仍然无法找到要实例化的驱动程序类(它应该从该驱动程序的URL推断出mySQL的属性)您可以添加一个显式命名它的属性:
spring.datasource.driver class name=com.mySQL.jdbc.driver
感谢您的帮助@GerryMantha。不幸的是,这并不能解决问题。您确定您的
应用程序.properties
文件位于类路径上吗(理想情况下位于
src/main/resources
?还显示
@SpringBootApplication
类application.properties位于
src/main/resources
是。没有spring启动程序jdbc或spring启动程序数据jpa?修复依赖项后,如果spring出于未知原因仍然无法找到要实例化的驱动程序类(它应该从该驱动程序的URL推断出mySQL)您可以添加一个显式命名的属性,如下所示:
spring.datasource.driver class name=com.mysql.jdbc.driver
谢谢您的帮助@GerryMantha。不幸的是,这并不能解决问题。只添加一个没有解释的代码示例不是很有用。只添加一个没有解释的代码示例不是很有用。
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();
    }
}
package com.fyakuthibernatespringboot.demo;


@SpringBootApplication
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}