1. 程式人生 > >【SSH】Error creating bean with name 'sessionFactory' defined in class path resource [applicationConte

【SSH】Error creating bean with name 'sessionFactory' defined in class path resource [applicationConte

  今天在小鹹兒再一次學習SSH的時候,在進行使用者名稱校驗的時候,啟動專案報了一個曾經遇到的錯誤:

  Error creating bean with name ‘sessionFactory’ defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is org.hibernate.InvalidMappingException: Could not parse mapping document from input stream

  再一次遇到這個問題,而且一看到錯誤內容這麼長,都不知道在哪裡啊!直接就開始上網查。經過網上查詢之後一位博主的話點醒了我,他說在error下面還有一句話,就是這個造成的這個錯誤的原因,同時也說明了解決方法:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is
org.hibernate.InvalidMappingException: Could not parse mapping document from input stream at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1486) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524
) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:589) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479) at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:383) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4738) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5181) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1101) at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1816) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from input stream at org.hibernate.cfg.Configuration$MetadataSourceQueue.processHbmXml(Configuration.java:4009) at org.hibernate.cfg.Configuration$MetadataSourceQueue.processHbmXmlQueue(Configuration.java:3998) at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3986) at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1398) at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1375) at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:720) at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:188) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1545) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1483) ... 25 more Caused by: org.hibernate.PropertyNotFoundException: field [email] not found on cn.itcast.shop.user.vo.User at org.hibernate.property.DirectPropertyAccessor.getField(DirectPropertyAccessor.java:182) at org.hibernate.property.DirectPropertyAccessor.getField(DirectPropertyAccessor.java:174) at org.hibernate.property.DirectPropertyAccessor.getGetter(DirectPropertyAccessor.java:197) at org.hibernate.util.ReflectHelper.getter(ReflectHelper.java:241) at org.hibernate.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:229) at org.hibernate.mapping.SimpleValue.setTypeUsingReflection(SimpleValue.java:316) at org.hibernate.cfg.HbmBinder.createProperty(HbmBinder.java:2297) at org.hibernate.cfg.HbmBinder.createClassProperties(HbmBinder.java:2274) at org.hibernate.cfg.HbmBinder.createClassProperties(HbmBinder.java:2164) at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:412) at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:326) at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:177) at org.hibernate.cfg.Configuration$MetadataSourceQueue.processHbmXml(Configuration.java:4006) ... 33 more

  明顯的可以看出,在第二個Caused by中:
這裡寫圖片描述

  原來問題就是我在定義實體的時候忘記寫入email的欄位:
這裡寫圖片描述

  新增上email欄位後:啟動成功!
這裡寫圖片描述

  分享:

  在看到報了那麼多錯之後,一定要靜下心來去看在錯誤的後面會有造成這個錯誤的原因,這樣解決其問題就會很快。如果你被這麼多的字打敗了,看到字多就頭疼,先畏懼了,那麼你真的就錯失掉最快發現解決方法的機會了。
今天的分享不在於解決了一個多麼難的問題,而在於發現解決問題有多麼簡單。。