Background: 今天学习spring-mvc resful例子环境搭建,参考Spring 3 REST Hello World Example (from Mykyong.com),很好的例子,很感谢Mkyong.com,也是我应该学习的榜样。(我的环境是eclipse 4.3)
Subject: 但是例子存在疏漏,可能会对充分信赖者和新手产生影响,搭建过程中遇到了以下问题:
首先是ClassNotFoundException : Org.Springframework.Web.Context.ContextLoaderListener
Mkyong.com又给出了解决方法,因为新搭建的eclipse的servers设置是存在问题的,调试环境下需要手动将libs添加到部署设置中(才会部署到webapps/[appname]/WEB-INF/lib下面)此问题解决,但是遇到了新的问题。
(PS:除了缺少spring jar之外,还缺少servlet-api.jar, it can be found under tomcat’s libs folder)
其次遇到了ExceptionInInitializerError问题,即本post标题描述的问题,日志如下: following as console logs:
严重: Context initialization failed java.lang.ExceptionInInitializerError at org.springframework.context.support.AbstractRefreshableApplicationContext.createBeanFactory(AbstractRefreshableApplicationContext.java:194) at
…
org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) Caused by: java.lang.NullPointerException at org.springframework.beans.factory.support.DefaultListableBeanFactory.(DefaultListableBeanFactory.java:104) … 22 more 五月 22, 2014 1:42:28 上午 org.apache.catalina.core.StandardContext listenerStart 严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener java.lang.ExceptionInInitializerError at org.springframework.context.support.AbstractRefreshableApplicationContext.createBeanFactory(AbstractRefreshableApplicationContext.java:194) at
…
org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) Caused by: java.lang.NullPointerException at org.springframework.beans.factory.support.DefaultListableBeanFactory.(DefaultListableBeanFactory.java:104) … 22 more 五月 22, 2014 1:42:28 上午 org.apache.catalina.core.StandardContext start
(会出现该错误,其实有一定原因Mkyong.com所给图示存在一定的诱导误导性),错误的地方在于spring*.jar以及servlet-api.jar需要添加到User Entries,而不是(图上所显示的)Bootstrap Entries,问题仅此而已,应该如下图所示。