title: ContextLoader: Context initialization failed
body: <p>I'm trying to track down the reason why a portion of my application stopped working all of a sudden. I'm running Spring 1 with Weblogic 8.1.4.0 and Hibernate. The report generator is the part that has failed, first on our production server, then on the dev and qa servers on Friday while I was experimenting. I made no changes to the code, but I'm now getting a Missing Data Source exception on the compile statement of a mapping query. The only thing that changed was a couple of records in the database,  but they were fairly simple changes that I doubt would have had an impact. I also got the following error from Friday around the time that the two development apps may have failed: </p>
  
  <p>Here is the error in the logs from development server:</p>
  
  <pre><code>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: 
  </code></pre>
  
  <p>And there is a similar one about 10 minutes later from when I deployed to the QA server. </p>
  
  <p>It is referring to a datasource and connection pool defined in WebLogic. I have checked and tested the connection, and there doesn't seem to be any problems with it. </p>
  
  <p>What could possibly be going on that would have caused this? I even reverted back to a build from last week to make sure it was not a code change, but the same datasource required exception occurs:</p>
  
  <pre><code>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.&lt;init&gt;(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)
  </code></pre>
  
  <p>Any help would be appreciated.</p>
  
  <p>UPDATE: Here is the full stacktrace of the error:</p>
  
  <pre><code>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)
  </code></pre>