2012-04-08 153 views
3

我試圖追查我的應用程序的一部分突然停止工作的原因。我使用Weblogic 8.1.4.0和Hibernate來運行Spring 1。報告生成器是失敗的部分,首先在我們的生產服務器上,然後在週五嘗試時在dev和qa服務器上。我沒有對代碼做任何修改,但是現在我在映射查詢的compile語句中得到了Missing Data Source異常。唯一改變的是數據庫中的一些記錄,但它們是相當簡單的變化,我懷疑會產生影響。我還得到了以下錯誤週五身邊的時候,這兩個開發的應用程序可能失敗:ContextLoader:上下文初始化失敗

這裏是開發服務器日誌中的錯誤:

04-06 14:31:34 ERROR [main] org.springframework.web.context.ContextLoader: Context initialization failed 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'myDataSource' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is javax.naming.LinkException: 

而且還有一個類似的一個約10從我部署到QA服務器幾分鐘後。

它指的是WebLogic中定義的數據源和連接池。我已經檢查並測試了連接,並且似乎沒有任何問題。

可能會發生什麼會導致這種情況?我甚至恢復到上週的生成,以確保它不是一個代碼的變化,但出現所需的相同的數據源例外:

04-07 16:15:04 DEBUG [ExecuteThread: '14' for queue: 'default'] org.eei.survey.data.RegionDataDAO$NERCRegionMappingQuery: RdbmsOperation with SQL [{call prc_NERCRegions_get}] compiled 
04-07 16:15:04 ERROR [ExecuteThread: '14' for queue: 'default'] error.jsp: Error page displayed to user due to unhandled exception 
org.springframework.dao.InvalidDataAccessApiUsageException: dataSource is required 
    at org.springframework.jdbc.object.RdbmsOperation.compile(RdbmsOperation.java:300) 
    at org.eei.survey.data.ReportDAO$NCRMappingQuery.<init>(ReportDAO.java:535) 
    at org.eei.survey.data.ReportDAO.executePrcNCR(ReportDAO.java:548) 
    at org.eei.survey.data.ReportDAO.getNCR(ReportDAO.java:59) 
    at jsp_servlet._reliability._charts.__barncr._jspService(__barncr.java:235) 

任何幫助,將不勝感激。

更新:這是錯誤的完整堆棧跟蹤:

04-08 14:56:19 WARN [ExecuteThread: '14' for queue: 'default'] org.apache.shale.faces.ShaleViewHandler: No ViewController for viewId /reliability/support/reportgen.faces found under name reliability$support$reportgen 
04-08 14:56:19 DEBUG [ExecuteThread: '14' for queue: 'default'] org.eei.survey.data.ReportDAO: java.lang.IllegalArgumentException: No DataSource specified 
04-08 14:56:19 ERROR [ExecuteThread: '14' for queue: 'default'] error.jsp: Error page displayed to user due to unhandled exception 
java.lang.NullPointerException 
    at jsp_servlet._reliability._support.__reportgen._jspService(__reportgen.java:156) 
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:33) 
    at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1006) 
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419) 
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:315) 
    at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:322) 
    at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322) 
    at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130) 
    at org.apache.shale.faces.ShaleViewHandler.renderView(ShaleViewHandler.java:142) 
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87) 
    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200) 
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198) 
    at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1006) 
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419) 
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28) 
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) 
    at org.apache.shale.faces.InvokeCommand.execute(InvokeCommand.java:40) 
    at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:166) 
    at org.apache.shale.faces.ShaleApplicationFilter.doFilter(ShaleApplicationFilter.java:218) 
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) 
    at org.eei.survey.web.UserFilter.doFilterInternal(UserFilter.java:30) 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27) 
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6724) 
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) 
    at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3764) 
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2644) 
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219) 
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178) 
+0

你能獲得更多的堆棧跟蹤嗎? – chrislovecnm 2012-04-08 18:46:44

+0

已添加完整的堆棧跟蹤。 – jwBurnside 2012-04-08 18:59:49

+0

你是否定義了你的數據源bean? – chrislovecnm 2012-04-08 19:15:48

回答

0

我還沒有堅實的回答爲什麼發生這種情況,但我現在弄清楚瞭如何解決這個問題。我基本上必須停止部署的應用程序,然後重置連接池,然後重新啓動。我會假設重新啓動整個服務器將完成同樣的事情,但我嘗試了幾次而沒有結果。我目前沒有幾個小時來追蹤問題的根源,但如果有人遇到這種情況,至少可以快速解決。

1
+0

是的,一切似乎都在匹配。這實際上是我幾天前檢查時發現的第一件事。知道我可能會嘗試的其他日誌或調試方法嗎?謝謝。 – jwBurnside 2012-04-08 21:22:58

+0

編寫單元測試並連接到container外部的weblogic實例。打開jdni spring組件中的調試日誌記錄 – chrislovecnm 2012-04-08 23:39:55

相關問題