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

博主在学习SSH进行用户名校验时,启动项目报错。错误信息长,经上网查找,发现错误原因是定义实体时忘写email字段,添加上该字段后启动成功。博主分享经验,提醒看到报错要静心找原因,解决问题其实可能很简单。

  今天在小咸儿再一次学习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字段后:启动成功!
这里写图片描述

  分享:

  在看到报了那么多错之后,一定要静下心来去看在错误的后面会有造成这个错误的原因,这样解决其问题就会很快。如果你被这么多的字打败了,看到字多就头疼,先畏惧了,那么你真的就错失掉最快发现解决方法的机会了。
今天的分享不在于解决了一个多么难的问题,而在于发现解决问题有多么简单。。

引用中的代码片段是一个在Java中使用HashMap和BeanUtils.populate()方法填充一个自定义对象的示例。引用中的代码片段是一个在Java中使用TransformerFactory和Transformer类进行XML转换的示例,并通过启用安全处理模式来阻止对Java类的潜在引用。引用中的代码片段是一个使用注解来定义属性和组件的示例,该示例是基于Apache Tapestry框架的。 关于您提到的错误:"Error creating bean with name 'sessionFactory-his' defined in class path resource",根据提供的引用内容无法直接判断问题的原因。这个错误通常是由Spring框架在创建bean时出现的问题,可能是由于配置文件的错误、依赖项的问题或其他原因导致的。要解决这个错误,您可以尝试以下几个步骤: 1. 检查配置文件:确保配置文件中定义的bean名称和类路径资源的位置是正确的,并且没有语法错误或拼写错误。 2. 检查依赖项:确保所有必需的依赖项都已正确配置和引入。如果您使用的是Maven或Gradle等构建工具,可以尝试重新构建项目以解决依赖关系的问题。 3. 检查Spring配置:确保您的Spring配置文件正确配置了bean的相关属性和依赖项。您可以查看日志文件或调试信息以获取更多关于错误原因的详细信息。 4. 检查类路径资源:如果错误指向了一个类路径资源,您可以检查该资源是否存在,并且您有适当的权限来访问它。 请注意,具体的解决方法可能因为您的具体情况而有所不同。如果您能提供更多关于错误消息的详细信息,我可以给出更具体的建议。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Java代码审计手册(English)](https://blog.youkuaiyun.com/fastergohome/article/details/102554609)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值