【问题标题】:Spring ERR_CONNECTION_REFUSED弹簧 ERR_CONNECTION_REFUSED
【发布时间】:2018-01-24 16:44:10
【问题描述】:

我正在关注 Spring 的教程,到目前为止,我的代码允许您添加用户并查看所有用户。我现在正在尝试包含删除功能。我添加了以下代码来实现这一点。我相信它与教程中显示的完全一样,但结果我得到了 ERR_CONNECTION_REFUSED。在教程中,这个错误最初显示,但刷新后消失了,但在我的情况下它没有。

index.html

<a href="#" th:href="@{/user/delete/}+${user.id}">Delete</a>

userService.java

public void delete(User user) {userRepository.delete(user); }

userController.java

@RequestMapping(value = "/delete/{user}", method = RequestMethod.GET)
@ResponseBody
public String delete(@PathVariable User user)
{
    String name = user.getFirstname()+" "+user.getLastname();
    userService.delete(user);
    return name;
}

application.properties(添加到这一行的位是;FILE_LOCK=FS)

spring.datasource.url=jdbc:h2:file:./database.h2;FILE_LOCK=FS 

我注意到在 Spring Boot 中我现在得到以下内容,我知道它引用了我刚刚添加的用于删除的锁定方法,但不确定这是否是我被拒绝连接的原因,因为教程做了同样的事情但有效:

2018-01-24 16:18:54.446 WARN 6589 --- [restartedMain] o.h.e.j.e.i.JdbcEnvironmentInitiator:HHH000342:无法获得 与查询元数据的连接:不支持的文件锁定方法“FS” [90060-196] 2018-01-24 16:18:54.447 WARN 6589 --- [restartedMain] ationConfigEmbeddedWebApplicationContext:遇到异常 在上下文初始化期间 - 取消刷新尝试: org.springframework.beans.factory.BeanCreationException:错误 创建在类路径中定义的名称为“entityManagerFactory”的bean 资源 [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: 调用 init 方法失败;嵌套异常是 org.hibernate.service.spi.ServiceException:无法创建请求 服务 [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] 2018-01-24 16:18:54.447 信息 6589 --- [restartedMain] o.apache.catalina.core.StandardService :停止服务 [Tomcat] 2018-01-24 16:18:54.454 信息 6589 --- [restartedMain] utoConfigurationReportLoggingInitializer:

启动 ApplicationContext 时出错。显示自动配置 报告启用“调试”后重新运行您的应用程序。 2018-01-24 16:18:54.459 错误 6589 --- [restartedMain] os.s.boot.SpringApplication : 应用启动失败

org.springframework.beans.factory.BeanCreationException: 错误 创建在类路径中定义的名称为“entityManagerFactory”的bean 资源 [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: 调用 init 方法失败;嵌套异常是 org.hibernate.service.spi.ServiceException:无法创建请求 服务[org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]

更新

h2 数据库的文档说这是关于文件锁定的,那么为什么这是一个不受支持的方法呢?:

文件锁定方法 'FS' 这是 1.4 版和 较新。此数据库文件锁定机制使用本机文件系统 锁定数据库文件。在这种情况下不会创建 *.lock.db 文件, 并且没有启动后台线程。此机制可能无法正常工作 所有系统都符合预期。一些系统允许锁定同一个文件 在同一个虚拟机中多次,在某个系统上 不支持本机文件锁定或文件未解锁后 电源故障。

要启用此功能,请将 ;FILE_LOCK=FS 附加到数据库 URL。

此功能相对较新。用于生产时,请 确保您的系统确实按预期锁定文件。

【问题讨论】:

  • Error creating bean with name 这是应用程序启动错误。您的服务器尚未启动。尝试解决此问题。
  • 我添加了问题的更新。谢谢您的答复。至少我知道为什么它现在没有提供页面了。

标签: java spring spring-boot


【解决方案1】:

Spring Boot 应用程序启动似乎失败。您的服务器未启动。根据日志,创建 bean entityManagerFactory 失败。这是因为, FS 是 Unsupported file lock method。请检查这是否有效并且是您需要的。尝试删除它并检查它是否有效。

【讨论】:

  • 我添加了问题的更新。谢谢您的答复。至少我知道为什么它现在没有提供页面。
  • 很明显的问题但是,你的 h2 版本?
  • 这可能是一个显而易见的问题,但我不知道如何检查。我通过 intellij 设置它,但还没有真正的使用经验,因为我刚刚开始通过教程了解更多信息。
  • 您的项目中有pom.xml 或.gradle 文件吗?如果是,请检查是否有 h2 条目,以及是否有版本号
  • 如果我忽略它就可以了。我现在可以添加和删除。问题是当我尝试添加上面的代码时,我现有的用户数据丢失了。我将把这项工作作为作业提交,因此需要真正保留这些数据。不确定驱动程序/休眠的事情,但感谢您帮助我。
【解决方案2】:
spring.datasource.driver-class-name=org.h2.Driver

spring.datasource.url=jdbc:h2:file:./database.h2;FILE_LOCK=FS

spring.jpa.hibernate.ddl-auto=update

以防其他人遇到同样的问题,添加第三行可以解决此问题。

【讨论】:

    猜你喜欢
    • 2017-12-22
    • 2019-05-03
    • 2011-09-19
    • 2018-09-08
    • 1970-01-01
    • 2020-07-09
    • 2010-09-18
    • 1970-01-01
    • 2011-10-23
    相关资源
    最近更新 更多