it-swarm.com.de

Fehler beim automatischen Konfigurieren einer DataSource: 'spring.datasource.url'

Ich bin wirklich neu in Spring, speziell Spring Boot. Bitte ich flehe Sie an, seien Sie möglichst eindeutig, geben Sie mir Dokumente zum Lesen, damit ich sehr gut verstehen kann, was ich tun muss.

Mein Projekt verwendet MySQL + JavaFX + Spring Boot + Spring Data - JPA + Hibernate-Frameworks Technologien.

Dies ist meine POM-Datei.

<project xmlns="http://maven.Apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.nubeclick</groupId>
<artifactId>pos</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>POSNubeClick</name>
<description>Sistema de punto de venta (Point Of Sale).</description>
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.1.RELEASE</version>
    <relativePath /> <!-- lookup parent from repository -->
</parent>
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <Java.version>1.8</Java.version>
    <slf4j.version>1.7.12</slf4j.version>
    <log4j.version>1.2.17</log4j.version>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
    <dependency>
        <groupId>com.miglayout</groupId>
        <artifactId>miglayout-javafx</artifactId>
        <version>5.0</version>
    </dependency>
    <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.6</version>
    </dependency>
    <!-- <dependency> -->
    <!-- <groupId>org.slf4j</groupId> -->
    <!-- <artifactId>slf4j-api</artifactId> -->
    <!-- <version>${slf4j.version}</version> -->
    <!-- </dependency> -->
    <!-- <dependency> -->
    <!-- <groupId>org.slf4j</groupId> -->
    <!-- <artifactId>jcl-over-slf4j</artifactId> -->
    <!-- <version>${slf4j.version}</version> -->
    <!-- </dependency> -->
    <!-- <dependency> -->
    <!-- <groupId>org.slf4j</groupId> -->
    <!-- <artifactId>slf4j-log4j12</artifactId> -->
    <!-- <version>${slf4j.version}</version> -->
    <!-- </dependency> -->
    <!-- <dependency> -->
    <!-- <groupId>log4j</groupId> -->
    <!-- <artifactId>log4j</artifactId> -->
    <!-- <version>${log4j.version}</version> -->
    <!-- </dependency> -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-Java</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>com.jfoenix</groupId>
        <artifactId>jfoenix</artifactId>
        <version>1.10.0</version>
    </dependency>
    <dependency>
        <groupId>de.jensd</groupId>
        <artifactId>fontawesomefx</artifactId>
        <version>8.9</version>
    </dependency>
    <dependency>
        <groupId>org.controlsfx</groupId>
        <artifactId>controlsfx</artifactId>
        <version>8.40.13</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

Dies ist meine .properties-Konfiguration.

spring.main.banner-mode=off

# Datasource connection properties
spring.datasource.url=jdbc:mysql://localhost/posnubeclick
spring.datasource.username=nubeclick
spring.datasource.password=nubeclick
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

# JPA Properties
spring.jpa.database=posnubeclick

# Hibernate Configuration Properties
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
spring.jpa.properties.hibernate.current_session_context_class=thread
spring.jpa.properties.hibernate.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true

# Naming strategy
spring.jpa.hibernate.naming-strategy =org.hibernate.cfg.ImprovedNamingStrategy

#Turn Statistics on
spring.jpa.properties.hibernate.generate_statistics=true

# logging
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n
logging.level.org.hibernate.stat=debug
logging.level.org.hibernate.type=trace
logging.level.org.hibernate.SQL=debug
#logging.level.org.hibernate.type.descriptor.sql=trace
logging.level.=error

Dies ist meine Hauptklasse

@SpringBootApplication(scanBasePackages = { "com.nubeclick.pos" })
public class MainApp extends Application {

private static final Logger log = LoggerFactory.getLogger(MainApp.class);

public static void main(String[] args) throws Exception {

    SpringApplication.run(MainApp.class, args);
    // launch(args);
}

@Override
public void start(Stage stage) throws Exception {
    try {
        log.info("Starting Hello JavaFX and Maven demonstration application");

        String fxmlFile = "/fxml/Main.fxml";
        log.debug("Loading FXML for main view from: {}", fxmlFile);
        FXMLLoader loader = new FXMLLoader();
    Parent rootNode = (Parent) loader.load(getClass().getResourceAsStream(fxmlFile));

        log.debug("Showing JFX scene");
        Scene scene = new Scene(rootNode);
        scene.getStylesheets().add("/styles/styles.css");
        stage.setTitle("NubeClick - Point of Sales");
        stage.setScene(scene);
        stage.show();
    } catch (Exception e) {
    // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

Dies ist der Stacktrace: 

Ausnahme während der Kontextinitialisierung - Abbrechen des Aktualisierungsversuchs: org.springframework.beans.factory.UnsatisfiedDependencyException: Fehler beim Erstellen eines Bean mit dem Namen 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration': Unzufriedene Abhängigkeit durch Konstruktorparameter 0; Die verschachtelte Ausnahmebedingung ist org.springframework.beans.factory.BeanCreationException: Fehler beim Erstellen der Bean mit dem Namen 'dataSource', die in der Klassenpfadressource definiert ist ; geschachtelte Ausnahme ist org.springframework.beans.BeanInstantiationException: Instanziieren von [com.zaxxer.hikari.HikariDataSource] fehlgeschlagen: Factory-Methode 'dataSource' hat Ausnahme ausgelöst; Die verschachtelte Ausnahme ist org.springframework.boot.autoconfigure.jdbc.DataSourceProperties $ DataSourceBeanCreationException: Es konnte keine geeignete Treiberklasse ermittelt werden

Die Frühlingsbotschaft lautet: 

Beschreibung:

Die automatische Konfiguration einer DataSource ist fehlgeschlagen: 'spring.datasource.url' ist nicht angegeben und es kann keine eingebettete Datenquelle automatisch konfiguriert werden.

Grund: Fehler beim Bestimmen einer geeigneten Fahrerklasse

Aktion:

Folgendes berücksichtigen: Wenn Sie eine eingebettete Datenbank (H2, HSQL oder Derby) wünschen, setzen Sie diese bitte in den Klassenpfad.

Wenn Sie Datenbankeinstellungen aus einem bestimmten Profil laden möchten, müssen Sie sie möglicherweise aktivieren (derzeit sind keine Profile aktiv).

Ich habe auf diesen/- anderen Beitrag und diesen einen anderen Bezug genommen

Ich weiß nicht, was ich sonst noch tun soll, fange vielleicht wieder von vorne an, aber ich möchte diese Rahmenbedingungen an mein aktuelles Projekt anpassen.

Was kann ich tun, um das zu lösen?

Bearbeiten


Verrückte Sache, ich entschied mich, das Projekt in ein anderes Repository hochzuladen, machte eine komplette Bereinigung im Projektordner (gelöschtes .project, .settings, .classpath, bin, target) und reimportierte das Projekt in Eclipse. und jetzt ist der Fehler weg, zumindest dieser Fehler hat einige andere Fehler erhalten, aber jetzt lädt er alles aus der Eigenschaftendatei. Warum ist das passiert?

5
Adrian Flores

Ich beschloss, das Projekt in ein anderes Repository hochzuladen, eine vollständige Bereinigung im Projektordner durchzuführen (gelöschtes .project, .settings, .classpath, bin, target) und das Projekt erneut in Eclipse zu importieren Fehler ist weg, zumindest dieser Fehler hat einige andere Fehler erhalten, aber jetzt lädt er alles aus der Eigenschaftendatei. Warum ist das passiert?

0
Adrian Flores

Möglicherweise findet Spring Boot Ihre application.properties-Datei überhaupt nicht. Stellen Sie sicher, dass sich diese Datei im Stammverzeichnis des Ordners resources befindet (in einer typischen Maven-Projektkonfiguration sollte sie sich im Ordner src/main/resources befinden). 

Ich empfehle Ihnen, die DEBUG-Protokollierungsstufe zu aktivieren, um zu überprüfen, ob Spring Boot die richtige application.properties-Datei liest.

4
Riccardo Righi

Das würde ich tun, wenn wir nebeneinander sitzen und ein paar Zeilen kommentieren:

# Datasource connection properties
spring.datasource.url=jdbc:mysql://localhost/posnubeclick
spring.datasource.username=nubeclick
spring.datasource.password=nubeclick
#spring.datasource.driver-class-name=com.mysql.jdbc.Driver

# JPA Properties
#spring.jpa.database=posnubeclick

Ist Ihre .properties-Datei auch application.properties OR bootstrap.properties?

0
DaShaun

Stellen Sie sicher, dass Sie in Ihrer Datei pom.xml oder build.gradle über eine mysql-Abhängigkeit verfügen:

compile 'mysql:mysql-connector-Java'

oder

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-Java</artifactId>
</dependency>

Dann können Sie Ihre driver-class-name-Eigenschaft auskommentieren, da Spring Boot sie automatisch für Sie konfigurieren wird.

Eine weitere Sache: Es scheint, dass Sie eine Verbindung zu einem konkreten Port zu mysql herstellen sollten (standardmäßig ist es 3306). Stellen Sie also sicher, dass es ungefähr so ​​aussieht:

spring.datasource.url=jdbc:mysql://localhost:3306/posnubeclick
0
mkuligowski