org.springframework.beans.factory.CannotLoadBeanClassException

本文讨论了一个关于Spring框架的问题,即无法加载特定Controller类的情况。问题根源在于类文件被错误地保存在项目的bin目录下,而非预期的WEB-INF/classes目录。通过将类文件移动到正确的目录并配置构建路径,成功解决了该问题。本文提供了详细的解决步骤和配置方法,对于手动创建的项目特别有用。

我碰到的问题是org.springframework.beans.factory.CannotLoadBeanClassException:

具体是找不到某个controller的class。我查了好久,所有的名称拼写都是正确的,而且class文件可以正确生成。但是启动tomcat时总是报错。最后请教大神给解决的。

原因是我将生成的class文件生成在了项目的bin文件夹里,这是一个web项目,自然找不到bin下面的class文件。

解决方法是在工程\ROOT\WEB-INF\下面建classes文件夹,并将生成的class文件生成在该文件夹下面。

这个问题用myeclipse新建的web project应该不会出,但我手动建的的project根本没产生这个结构。让我学到了一手。

配置class生成位置的方法是,项目上右键->build path -> configure build path -> source 最下面有default output folder 将其设置为:项目名/ROOT/WEB-INF/classes就可以了。

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [spring/spring-mybatis.xml]: Cannot resolve reference to bean 'globalConfig' while setting bean property 'globalConfig'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'globalConfig' defined in class path resource [spring/spring-mybatis.xml]: Cannot create inner bean 'com.config.MyMetaObjectHandler#5d19cea5' of type [com.config.MyMetaObjectHandler] while setting bean property 'metaObjectHandler'; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.config.MyMetaObjectHandler] for bean with name 'com.config.MyMetaObjectHandler#5d19cea5' defined in class path resource [spring/spring-mybatis.xml]; nested exception is java.lang.ClassNotFoundException: com.config.MyMetaObjectHandler at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:378) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:110) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1607) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1352) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:502) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:312) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:310) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:740) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:868) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549) at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:409) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:291) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:103) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4734) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1387) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1377) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)如何解决
最新发布
11-06
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值