Primavera de arranque: No se ha podido configurar un origen de datos: atributo 'url' no se especifica ningún origen de datos incrustado y se podría configurar

Indrajith Ekanayake:

de error se produce cuando lo ejecuta mi aplicación web.

Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Failed to determine a suitable driver class

La descripción del error tirado de la siguiente manera,

Description:

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

Reason: Failed to determine a suitable driver class


    Action:

    Consider the following:<br>
        If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
<br>    If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).

Después de referirse esta respuesta , sé que tengo que hacer algunos cambios con mi pom.xmlarchivo. Pero no sé qué hay que cambiar e incluso preguntas de tipo similar en StackOverflow no podían ayudarme a resolver esto.

Mi pom.xmlsiguiente manera (cuando la creación de proyectos que he añadido "Web", "de la APP, dependencias" "MySQL"),

    <?xml version="1.0" encoding="UTF-8"?>
    <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>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.3.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.example</groupId>
        <artifactId>SL2INDUSTRY</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>SL2INDUSTRY</name>
        <description>Demo project for Spring Boot</description>

        <properties>
            <java.version>1.8</java.version>
        </properties>

        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>

            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.apache.tomcat.embed/tomcat-embed-jasper -->
            <dependency>
                <groupId>org.apache.tomcat.embed</groupId>
                <artifactId>tomcat-embed-jasper</artifactId>
                <scope>provided</scope>
            </dependency>

            <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-tomcat -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
                <version>2.1.3.RELEASE</version>
            </dependency>

            <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-xml -->
            <dependency>
                <groupId>com.fasterxml.jackson.dataformat</groupId>
                <artifactId>jackson-dataformat-xml</artifactId>
                <version>2.9.8</version>
            </dependency>
        </dependencies>

        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>

    </project>

Plese nota de que no necesito para hacer frente a las bases de datos H2 en esta situación tan H2 no es mi solución

Ediciones: application.propertiesarchivo

spring.mvc.view.suffix=.jsp
Francisco Recio:

Si usted lee su huella de error:

Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Failed to determine a suitable driver class

Usted se dará cuenta de que él está tratando de utilizar la fuente de datos Hikari para configurar la conexión a BD. ¿Que esta pasando?

Se utiliza la primavera de arranque 2. Y por esta versión del arranque de la primavera ha cambiado la configuración por defecto.

Como se puede ver en la siguiente dirección:

https://www.baeldung.com/spring-boot-hikari#spring-boot-2

En la primavera de arranque 2, Hikari es la implementación de origen de datos predeterminado.

Esto es lo que ha cambiado desde la primavera de arranque 1.x:

· La dependencia a Hikari ahora se incluye de forma automática en primavera-arranque-motor de arranque-data-JPA

· El algoritmo de descubrimiento de que determina automáticamente una implementación de DataSource ahora prefiere Hikari sobre TomcatJDBC (ver el manual de referencia).

Por lo tanto, no tenemos nada que hacer si queremos utilizar Hikari en una aplicación basada en la primavera de arranque 2.x.

Y la configuración de Hikari es diferent.

Entonces, imagino que desea uso de la piscina Tomcat conexión. Se puede hacer:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
    <exclusions>
        <exclusion>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-jdbc</artifactId>
    <version>9.0.10</version>
</dependency>

Esto excluirá Hikari por defecto de la configuración JPA primavera y entonces necesitará Tomcat-JDBC. El que se pueden configurar de fuente de datos:

Este sencillo enfoque nos permite obtener primavera de arranque utilizando un pool de conexiones Tomcat sin tener que escribir una clase @Configuration programación y definir un origen de datos de frijol.

Es también digno de mención que, en este caso, estamos usando la base de datos en memoria H2. Primavera de arranque se autoconfigura H2 para nosotros, sin tener que especificar una dirección URL base de datos, usuario y contraseña.

Sólo tenemos que incluir la dependencia correspondiente en el archivo “pom.xml” y la primavera de arranque haremos el resto para nosotros.

Alternativamente, es posible omitir el algoritmo de rastreo de la piscina de conexión que utiliza Spring arranque y especificar explícitamente una fuente de datos de agrupación de conexiones en el archivo “application.properties”, utilizando la propiedad “spring.datasource.type”:

spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource
// other spring datasource properties
spring.datasource.url=...
spring.datasource.username=...
spring.datasource.password=...
...

Aquí tienes la referencia completa a desactivar Hikari y configurar Tomcat:

https://www.baeldung.com/spring-boot-tomcat-connection-pool

Si desea utilizar la configuración Hikari es diferent:

https://www.baeldung.com/spring-boot-hikari

Pero una de estas dos opciones será arreglar el problema.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=118563&siteId=1
Recomendado
Clasificación