注解@Resource奇葩报错问题解决

来源:互联网 发布:阿里云服务器多台 编辑:程序博客网 时间:2024/06/05 04:35

一、起源

这个问题困扰我好久,前几天也遇到过,于是网上查找资料,无果,今天又是这个问题,无意操作居然好了,非常神奇,特此记录。

二、问题

六月 20, 2017 5:44:47 下午 org.apache.catalina.core.StandardContext listenerStart严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListenerorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'reportSignConR': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'reportSignSer': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'signMapper' must be of type [com.zs.dao.ReportSignMapper], but was actually of type [com.sun.proxy.$Proxy43]at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:307)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1185)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:700)at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760)at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4717)at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5179)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)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)Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'reportSignSer': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'signMapper' must be of type [com.zs.dao.ReportSignMapper], but was actually of type [com.sun.proxy.$Proxy43]at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:307)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1185)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:445)at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:419)at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:544)at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:155)at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:304)... 22 moreCaused by: org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'signMapper' must be of type [com.zs.dao.ReportSignMapper], but was actually of type [com.sun.proxy.$Proxy43]at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:376)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:445)at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:419)at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:544)at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:155)at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:304)... 35 more

service:

package com.zs.service.impl;import java.util.Date;import java.util.List;import javax.annotation.Resource;import org.apache.log4j.Logger;import org.springframework.stereotype.Service;import com.zs.dao.ReportSignMapper;import com.zs.entity.ReportSign;import com.zs.entity.ReportSignKey;import com.zs.entity.other.EasyUIAccept;import com.zs.entity.other.EasyUIPage;import com.zs.entity.other.ReportSignBean;import com.zs.service.ReportSignSer;@Service("reportSignSer")public class ReportSignSerImpl implements ReportSignSer{private Logger log=Logger.getLogger(getClass());@Resourceprivate ReportSignMapper signMapper;public EasyUIPage queryFenye(EasyUIAccept accept) {/*if (accept!=null) {Integer page=accept.getPage();Integer size=accept.getRows();if (page!=null && size!=null) {accept.setStart((page-1)*size);accept.setEnd(page*size);}List list=signMapper.queryFenye(accept);int rows=signMapper.getCount(accept);return new EasyUIPage(rows, list);}*/return null;}public Integer add(ReportSign obj) {// TODO Auto-generated method stubreturn null;}public Integer update(ReportSign obj) {// TODO Auto-generated method stubreturn null;}public Integer delete(ReportSignKey id) {// TODO Auto-generated method stubreturn null;}public ReportSign get(ReportSignKey id) {// TODO Auto-generated method stubreturn null;}public List<ReportSignBean> obtainOfCtmAndProvince(Date d1,Date d2) {//return signMapper.obtainOfCtmAndProvince(d1, d2);return null;}}

三、解决

只需要把private ReportSignMapper signMapper;改为private ReportSignMapper reportSignMapper;

只要把类名复制,将首字母小写即可,谁能解释。


原创粉丝点击