未能执行目标 org.springframework.boot:spring-boot-..:2.1.8。运行时发生异常。空值

Posted

技术标签:

【中文标题】未能执行目标 org.springframework.boot:spring-boot-..:2.1.8。运行时发生异常。空值【英文标题】:Failed to execute goal org.springframework.boot:spring-boot-..:2.1.8. An exception occurred while running. null 【发布时间】:2021-03-02 11:32:58 【问题描述】:

我是 SpringMVC 的新手,被困在这里。 我通过 Spring Initializr 创建了一个 Spring Boot 应用程序,然后 创建HomeController,将其与index.jsp 连接。它正在工作 很好,但是当我添加SearchController,与search.jsp 连接时,它 现在不工作。在添加SearcController 之前,应用程序是 运行良好,但随后显示:

无法在项目 hplus 上执行目标 ...plugin:2.4.0:run (default-cli):应用程序已完成,退出代码:1

更新:在进行了一些搜索后,我发现我的数据库服务器 没有运行,运行之后,运行我的应用程序 测试,我遇到了这个错误。

访问 DialectResolutionInfo 时不能为空 'hibernate.dialect' 未设置 .

Full Error!
Test set:HplusappApplicationTests
<<< ERROR!
java.lang.IllegalStateException: Failed to load ApplicationContext
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set

.

pom.xml file ->
<code>
xml 
<?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 
  https://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.4.0</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>spring-example</groupId>
<artifactId>myapp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>myapp</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-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>

    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>
</dependencies>

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

</project>

application.properties ->

spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://localhost:3306/hplus
spring.datasource.username=root
spring.datasource.password=root

【问题讨论】:

不知道为什么会失败(即完全错误或测试失败),无法回答这个问题。 @M. Deinum 我不知道如何找到整体和错误,这就是我正在寻找的。但控制台显示:无法在项目 myapp 上执行目标 org.springframework.boot:spring-boot-maven-plugin:2.4.0:run (default-cli):应用程序以退出代码完成:1 使用调试信息运行或仅在 IDE 中运行。 感谢您的指导,我可以调试并找到完整的错误,我把它贴在上面。 这不是完整的错误。这表明您在没有正确任务的情况下运行。 【参考方案1】:
[ERROR] No goals have been specified for this build. You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are: validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, post-clean, pre-site, site, post-site, site-deploy. -> [Help 1]

它清楚地表明您输入了错误的mvn 命令。 你执行的命令是什么? 我们通常运行mvn clean install 来构建应用程序。 这是Maven commands 的列表,可能会对您有所帮助。

【讨论】:

'hibernate.dialect' not set你必须在属性中添加spring.jpa.properties.hibernate.dialect【参考方案2】:

您需要指定 Hibernate 应该使用的 MySQL 方言:

把它放在 application.properties 中:

spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect

【讨论】:

【参考方案3】:

在定义 bean 和你的 pom 文件时似乎有错误,你是否尝试过运行干净的安装,使用

mvn clean instal

命令?如果这仍然不起作用,请尝试查看您的 pom 和 application.properties 文件是否还有一些混合版本?如果这仍然不起作用,请尝试删除您的 .m2 文件并再次运行 mvn clean install。

【讨论】:

【参考方案4】:

解决方案 找了两天多,发现是时区问题。

我编辑了 application.properties,第二行 ->

spring.datasource.url=jdbc:mysql://localhost:3306/hplus?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false

https://***.com/a/56537473/14623694

它解决了这个问题。

【讨论】:

以上是关于未能执行目标 org.springframework.boot:spring-boot-..:2.1.8。运行时发生异常。空值的主要内容,如果未能解决你的问题,请参考以下文章

Spring Roo 项目。项目构建错误:未能执行目标

未能执行目标... maven-install-plugin ... 无法安装工件...(访问被拒绝)

未能执行目标 org.apache.maven.plugins:maven-enforcer-plugin

未能执行目标 maven-antrun-plugin - GitHub 操作上的连接超时

未能执行目标 org.apache.maven.plugins:maven-resources-plugin:2.5:resources

未能执行目标 org.springframework.boot:spring-boot-..:2.1.8。运行时发生异常。空值