首先:我在这方面总计n00b并且我真的想要理解这一点,但这些特殊的例外并没有太多帮助我。所以也许我只需要一个指向适当文档的指针,或者可能不需要,但是现在这几天就让我失望了,而且我对任何类似解决方案的内容都没有了。
我有一个声明一个数据库表的示例项目。该项目还通过REST公开了这个表。该项目分为4个模块:
org.springframework.http.ResponseEntity
该应用程序发布到tomcat 8并按预期工作。
现在我尝试在应用程序中添加另一个模型,因此我将一个新的.java添加到包含另一个带注释的模型/实体的models子目录中。
当我这样做时,我的应用程序将不再启动。
我得到servlet调度程序的异常Servlet.init()抛出异常
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并且没有对这个问题的解释,人们给我的样本我只是难倒。
你能帮我理解吗?
答案 0 :(得分:1)
由于后台发生错误,您的DataSource已关闭。该错误可能是由您添加到项目中的新模型定义引起的。既然你提到你正在使用hibernate但没有太多的经验,我相信发生的事情就是:
为了解决这个问题,我建议暂时增加至少调试级别(此时你肯定会看到关闭连接背后的原因 - 真正的错误)。你可能应该考虑开启hibernate调试日志,以确保。