严重: Catalina.start: org.apache.catalina.LifecycleException: Failed to start component [StandardServ

           花了三个小时才找到bug,还是Eclipse报错才发现的。

           如果你遇到这个错的情形和我是一样的原因。

          我是把SpringMVC+Hibernate的项目转换成SpringMVC+Mybatis项目的时候报错这么多。

严重: Catalina.start: 
org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:684)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:451)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 7 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 9 more
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)
	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 11 more
后来换到另外一台电脑上,报错时,提示找不到sessionFactory,这时,我才想起来我在利用Spring配置Mybatis时根本配置的是jdbcDataSourse和sqlSessionFactory。而Spring配置Hibernate时配置的是dataSourse和sessionFactory。

       在web.xml中,配置OpenSessionInView这个过滤器时,要给org.springframework.orm.hibernate3.support.OpenSessionInViewFilter类里面的sessionFactory初始化,在之前使用Hibernate时,没有问题,Spring会自动加载另外一个配置文件中的sessionFactory,而换成mybatis后,由于没有配置sessionFactory,所以一直报错。

        最终解决方法,直接将这个过滤器注释掉即可,使用mybatis好像不用配置OpenSessionInView,页面也能得到session数据,暂时不知道原因为何。希望有人可以看到这篇博客帮忙解答下。

============================================================

2016.617 增加
在使用Mybatis时,之所以不用配置OpenSessionInView,是因为我做的小例子里面涉及到的Model就一个,不存在使用懒加载情况,所以直接注释不影响

你可能感兴趣的:(Java,SSH,SpringMVC,Mybatis)