gpt4 book ai didi

java - Spring + hibernate Servlet.init() 用于 servlet 调度程序抛出异常

转载 作者:行者123 更新时间:2023-12-01 11:00:30 24 4
gpt4 key购买 nike

首先也是最重要的:我对此一窍不通,并且真的很想理解这一点,但这些特殊的异常(exception)对我没有太大帮助。因此,也许我只需要一个指向适当文档的指针,也可能不需要,但这已经让我苦恼了几天,而且我还没有接近任何类似解决方案的东西。

我有一个示例项目,其中声明了一个数据库表。该项目还通过 REST 公开了该表。该项目分为 4 个模块:

  • config:包含各种配置项,例如hibernate配置等。所有配置都在.java文件中,而不是.xml
  • 模型:包含数据库模型声明/实体(也带有 .java 注释)
  • data:包含 DAO 及其每个模型的实现(目前为止只有一个)。包含 AbstractDao(简单的 sessionFactory 包装器/持久化实现器)、UserDao(其余方法的接口(interface))和 UserDaoImpl(用户模型的实现)
  • web: Controller 通过 org.springframework.http.ResponseEntity 将 DAO 发布到 REST

应用程序发布到 tomcat 8 并按预期工作。

现在我尝试将另一个模型添加到应用程序中,因此我将一个新的 .java 添加到包含另一个带注释的模型/实体的模型子目录中。

当我这样做时,我的应用程序将不会再启动。

我得到了 Servlet.init() 的异常,因为 servlet 调度程序抛出了异常

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao': Injection of autowired dependencies failed; 
org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.hibernate.SessionFactory sima.data.AbstractDao.sessionFactory;
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in sima.config.HibernateConfiguration: Invocation of init method failed;
org.hibernate.tool.schema.spi.SchemaManagementException: Unable to open JDBC connection for schema management target
java.sql.SQLException: Data source is closed

请注意,此异常适用于我尚未修改的现有对象。我在 models/子目录中添加了一个新对象,整个世界在我周围爆炸了。

然后我也尝试添加 DAO 和 Controller,但这自然没有帮助。我似乎忘记了一些事情,但作为一个 n00b,并且没有从给我样本的人那里得到关于这个主题的解释,我只是被难住了。

你能帮我理解这一点吗?

最佳答案

由于后台发生错误,您的数据源已关闭。该错误可能是由您添加到项目中的新模型定义引起的。既然你提到你正在使用 hibernate 但还没有太多的经验,我相信发生的事情是:

  • 您添加了一个新模型(引用表格)
  • 引用的表不存在(或只是未正确引用)
  • 应用程序启动时架构验证失败
  • 底层数据库连接已关闭

为了解决这个问题,我建议暂时提高至少调试级别(此时您肯定会看到关闭连接背后的原因 - 真正的错误)。为了确定起见,您可能应该考虑打开 hibernate 调试日志记录。

关于java - Spring + hibernate Servlet.init() 用于 servlet 调度程序抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33365022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com