弹簧 ERR_CONNECTION_REFUSED

IT小君   2022-09-15T08:24:06

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

索引.html

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

用户服务.java

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

用户控制器.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] ohejeiJdbcEnvironmentInitiator:HHH000342:无法获得与查询元数据的连接:不支持的文件锁定方法“FS”[90060-196] 2018-01-24 16:18 :54.447 WARN 6589 --- [restartedMain] ationConfigEmbeddedWebApplicationContext:上下文初始化期间遇到异常 - 取消刷新尝试:org.springframework.beans.factory.BeanCreationException:在类路径资源 [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:

启动 ApplicationContext 时出错。要显示自动配置报告,请在启用“调试”的情况下重新运行您的应用程序。2018-01-24 16:18:54.459 错误 6589 --- [restartedMain] osboot.SpringApplication:应用程序启动失败

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

更新

h2 数据库的文档说明了有关文件锁定的内容,那么为什么这是不受支持的方法?:

文件锁定方法 'FS' 这是 1.4 及更新版本的默认模式。此数据库文件锁定机制在数据库文件上使用本机文件系统锁定。在这种情况下不会创建 *.lock.db 文件,也不会启动后台线程。此机制可能无法按预期在所有系统上运行。一些系统允许在同一虚拟机内多次锁定同一个文件,并且在某些系统上,不支持本地文件锁定或文件在电源故障后未解锁。

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

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

评论(2)
IT小君

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

2022-09-15T08:24:07   回复
IT小君
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

万一其他人遇到同样的问题,添加第三行可以解决这个问题。

2022-09-15T08:24:07   回复