开发者社区> 问答> 正文

BeanCreationException:错误我该如何解决?

我需要一些帮助。我正在将Java与Springboot结合使用,并且正在从事一个项目,该项目实质上将数据库中的信息(书名,作者,语言等)显示到网页上,并且浏览网站使我可以对数据库进行更改例如编辑条目,创建新条目,显示条目或删除条目。

直到我必须关闭计算机,然后再返回并尝试再次运行该项目时,它的工作情况还不错,它给了我下面的错误以及许多其他内容。我重新启动服务器,在调试模式下运行它,似乎没有任何作用。几乎就像我断开了以前存在的某种连接一样,或者我删除了本不应该删除的内容。我只是不知道这可能是什么。我希望任何人都可以告诉我我做错了什么,以便我可以扭转它并使它重新启动。

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
[2m2020-03-16 23:06:05.766[0;39m [31mERROR[0;39m [35m49106[0;39m [2m---[0;39m [2m[  restartedMain][0;39m [36mo.s.boot.SpringApplication              [0;39m [2m:[0;39m Application run failed

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]

请注意,我没有直接学习“休眠”,只有在看到此错误并尝试使用Googling寻求答案时才听说此词。我为有类似问题的人尝试了stackoverflow上提到的其他一些解决方案,但对我来说不起作用(即,添加了有关休眠的特定依赖项,但我现在还不记得它的详细信息我的头)。

以下是我用于各种程序包的一些代码:

属性

spring.datasource.url=jdbc:mysql://localhost:3306/book-schema2 
spring.datasource.username=root 
spring.datasource.password=root 
spring.datasource.driver-class-name=com.mysql.jdbc.Driver 
spring.jpa.hibernate.ddl-auto=update 
spring.mvc.view.prefix=/WEB-INF/

在pom.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.2.5.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.blank.mvc2</groupId>
    <artifactId>mvc2</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>mvc2</name>
    <description>mvc2</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>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </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>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
    </dependencies>

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

</project>

在模型包中:import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.PrePersist;
import javax.persistence.PreUpdate;
import javax.persistence.Table;
import javax.validation.constraints.Min;
import javax.validation.constraints.Size;

import org.springframework.format.annotation.DateTimeFormat;

@Entity
@Table(name="books2")
public class Book {

在存储库包中:

import java.util.List;
import java.util.Optional;

import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface BookRepository extends CrudRepository<Book, Long> {

在服务包中:

import java.util.List;
import java.util.Optional;

import org.springframework.stereotype.Service;

@Service
public class BookService {

在控制器包中:

import java.util.List;

import javax.validation.Valid;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class BooksController {

提醒您,我已经做过这个项目,并再次将其用于练习,并且两个项目以前都起作用,但是现在这两个项目都没有起作用。在我重新启动计算机之前,它一直运行良好(在这段时间内计算机本身没有更新)。如果您需要更多信息,请告诉我。我现在只需要帮助弄清楚这一点,因为对我来说为什么一分钟内无法正常工作,然后仅通过打开/关闭计算机电源在下一分钟内就无法工作,这对我来说是没有意义的。

问题来源:Stack Overflow

展开
收起
montos 2020-03-21 21:19:00 2362 0
1 条回答
写回答
取消 提交回答
  • 好的,所以什么都没用,在网上进行了更多挖掘之后,我找到了一个解决方案,但不知道如何实现它,甚至不起作用。果然,我找到了一个Youtube视频(https://www.youtube.com/watch?v=nO0IaGrlGPc),其中他逐步解释了该视频以及如何解决它。

    TLDR:我起初是spring.datasource.url=jdbc:mysql://localhost:3306/book-schema在物业中,但遇到了一些错误,其中之一是EDT未被识别为时区。这似乎是导致其他错误的原因。

    所以我现在在属性中是:

    spring.datasource.url=jdbc:mysql://localhost:3306/book-schema?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
    

    该程序现在可以像以前一样工作。(我认为也许3月8日的夏令时可能起到了作用?我不知道,但是它运行良好,然后突然说它不能识别EDT。)

    谢谢所有试图帮助我解决此问题的人。

    回答来源:Stack Overflow

    2020-03-23 09:44:05
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载