我需要一些帮助。我正在将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
好的,所以什么都没用,在网上进行了更多挖掘之后,我找到了一个解决方案,但不知道如何实现它,甚至不起作用。果然,我找到了一个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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。