[英]ContextLoader: Context initialization failed
我試圖找出我的應用程序的一部分突然停止工作的原因。 我正在使用 Weblogic 8.1.4.0 和 Hibernate 運行 Spring 1。報告生成器是失敗的部分,首先是在我們的生產服務器上,然后是周五我進行試驗時在開發和質量檢查服務器上。 我沒有對代碼進行任何更改,但我現在在映射查詢的編譯語句中遇到了缺少數據源異常。 唯一改變的是數據庫中的幾條記錄,但它們是相當簡單的改變,我懷疑它們是否會產生影響。 從周五開始,我還收到了以下錯誤,當時這兩個開發應用程序可能已經失敗:
這是開發服務器日志中的錯誤:
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:
從我部署到 QA 服務器大約 10 分鍾后,有一個類似的。
它是指在 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)
您的數據源的 jdni 解析有問題。 查看 weblogic jdni 池並確保您使用的是正確的 jdni 名稱。 java:comp/env/jdbc/reliabilityDS 不工作。
這可能有幫助:
這也是
http://docs.oracle.com/cd/E13222_01/wls/docs81/jndi/jndi.html
這也是
對於為什么會發生這種情況,我仍然沒有確切的答案,但我確實暫時想出了解決方法。 我基本上必須停止已部署的應用程序,然后重置連接池,然后重新啟動。 我原以為重新啟動整個服務器會完成同樣的事情,但我試了好幾次都沒有結果。 我目前沒有時間追查問題的根源,但如果有人遇到這種情況,你至少可以快速解決。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.