org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'dataSource' defined in URL [file:/C:/apache-tomcat-6.0.16/webapps/acode/WEB-INF/classes/springconf/application-context.xml]: Could not resolve placeholder 'jdbc.url'
at org.springframework.beans.factory.config.PropertyPlaceholderConfigurer.processProperties(PropertyPlaceholderConfigurer.java:287)
at org.springframework.beans.factory.config.PropertyResourceConfigurer.postProcessBeanFactory(PropertyResourceConfigurer.java:75)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:663)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:638)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:407)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4350)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
前幾天修改數據庫的鏈接配置文件的時候,啟動應用報出了如上的異常信息,對於我的這個異常,異常信息指示的還是比較明確的通過此句Invalid bean definition with name 'dataSource' defined in URL [file:/C:/apache-tomcat-6.0.16/webapps/acode/WEB-INF/classes/springconf/application-context.xml]: Could not resolve placeholder 'jdbc.url'的提示信息,我查看了對應的數據庫的配置項,發現在sqlserver.properties文件中"jdbc.url"少了一個"j",問題的原因找到問題也就很容易解決了。在這里我的問題比較簡單,我記下來主要是想說下我通常查看異常的步驟,以便將強記憶:
1:仔細查看異常的信息,有些問題還是比較容易從異常信息中找到對應的提示的,通常只要知道那里出了問題,問題就很容易解決了
2:第二如果不明確問題在哪里,可以回想一下,自己操作了什么引起了對應的異常,逐步的恢復加調試也比較容易定位到問題,定位到問題也差不多就解決問題了
3:百度或者谷歌,網上高手如雲,總能找到些解決問題的方式方法,如果自己遇到的問題,網上怎么搜都沒有對應的案例,這個時候可以去試試買把彩票了
4:問同事,因為有些問題確實和情景密切相關從網絡上找不到比較好的解決方案,就問老同事們,他們通常會有若干辦法來解決問題的,至少通常是這樣的,多和人商量的另一個好處,就是很容易發現自己忽落的小細節,從而快速的解決問題,畢竟多個腦袋多條思路
5:如果上面的方式還是沒發現問題在哪里,就請從頭再查一次,將那些你認為不可能出錯的地方也仔仔細細的查一下,我遇到過幾次,認為不可能出現問題的地方,她卻出現了問題,導致花費大量的時間和精力在別處瞎轉悠,有些緣木求魚的錯覺!
6:最難解決的問題是不報錯的問題,解決問題的第一步就是讓他報錯,注意運用try...catch。我遇到過實際運行有錯但就是不報錯的錯誤,這個錯我和另外一個同事查了兩個晚上,毫無結果,最后從頭查起終於在認為不可能出現問題的地方找到了問題的所在,當時很驚喜,很興奮,問題也很容易解決,但她特別的隱秘非常不容易查找,在開發環境怎么測試都沒問題,放到生產環境就時好時壞的,令人很疑惑!(開發環境:Windows7+Tomcat6.0+Oracle10,生產環境:Liunx+WebLogic+Oracle10)
另外我百度了一下,引起這個異常的情況還有缺少JAR包的情況,參考如下:
http://liuzidong.iteye.com/blog/893960
http://blog.csdn.net/longeremmy/article/details/7464815