2015-10-27 48 views
0

首先,我總共是n00b,我真的很想理解這一點,但這些特殊的異常對我沒有太大的幫助。所以,也許我只需要一個指向相應文檔的指針,或者不需要,但是現在這幾天讓我失望了,而且我沒有更接近任何類似解決方案的東西。Spring + Hibernate servlet.init()爲servlet調度器拋出異常

我得到了一個示例項目,它聲明瞭一個數據庫表。該項目還通過REST公開了該表。該項目被分解成4個模塊:

  • 配置:包含各種配置項目,如Hibernate的配置等,全部配置在.java文件,而不是.XML
  • 型號:包含DB模式聲明/實體(也被註釋爲.java)
  • data:包含每個模型的DAO及其實現(迄今爲止)。包含AbstractDao的(簡單的sessionFactory包裝/持久性實現者),userDAO的(接口其餘部分的方法)和一個UserDAOImpl(實施爲用戶模型)
  • 幅:經由org.springframework.http.ResponseEntity

該應用程序發佈到Tomcat 8控制器出版的DAO到REST並按預期工作。

現在我試着添加另一個模型到應用程序中,所以我添加了一個新的.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 

請注意,這個例外情況是,我沒有修改現有的對象。我在模型/子目錄中添加了一個新對象,整個世界都在我周圍爆炸。

然後我試着添加DAO和控制器,但它自然沒有幫助。我似乎忘記了一些事情,但是卻只是一個n00b,並沒有對這個問題做出任何解釋,讓人們對我的樣品感到難以置信。

你能幫我理解嗎?

回答

1

由於在後臺發生錯誤,您的DataSource已關閉。該錯誤可能是由您添加到項目中的新模型定義引起的。既然你提到你正在使用休眠,但不會與它有太多的經驗,但我相信所發生的事情是:

  • 你添加了一個新的模式(參考表)
  • 引用的表不存在(或只是不正確引用),當應用程序啓動
  • 底層數據庫連接得到了關閉

爲了解決我會sugge問題

  • 架構驗證失敗暫時增加至少一個調試級別(此時你肯定會看到關閉連接的原因 - 真正的錯誤)。您應該考慮切換hibernate調試日誌來確保。

  • +0

    模型作品。 :)我有一個愚蠢的錯字:打破,而不是剎車...現在它失敗了,當我添加REST控制器:(這是非常有趣的:p – velis

    +0

    是否真的沒有辦法告訴Hibernate在DB模型時引發致命的異常綁定失敗? – velis

    相關問題