zoukankan      html  css  js  c++  java
  • BeanNotOfRequiredTypeException:Bean named 'XXXX' is expected to be of type 'XXX' but was actually of type 'com.sun.proxy.$Proxy211'

        直接说结论,前提是在服务实现层启用了@Transactional(rollbackFor = Exception.class)注解,然后controller层注入的服务应该是接口,但是不知道哪个傻吊注入了实现。详细看后面。

        今天测试项目的时候一直报错,找这个错误花费了两三个小时,错误来源于粗心大意,注入的接口弄错了,但不是我弄错了,是公司的其他同事,协作开发。

      由于昨天开发、测试一切正常,但是我新写的代码,启动就报错,最开始我百度,基本都是告诉我注入bean错误,name有问题,重名等等,但是我仔细核查都没问题。

      后来我一点点的添加自己的代码,测试,发现当我的服务层Server方法加上@Transactional(rollbackFor = Exception.class)注解,启动就报RT错误,这我纳闷了,然后慢慢看注入bean的name看是否重名,没有,编译也不报错,但我看到这个的时候,简直爆炸。如下图。

      

      

      当时就想骂人了,谁这么注解的,浪费我时间,难怪会报错,至于深层原因,技术水平时间有限,我也不知道Orz。

      如果有类似错误,但是不是bean的name等错误,可以看看是不是这个原因。

      附完整错误代码:

    六月 23, 2019 6:55:08 下午 org.apache.catalina.core.ApplicationContext log
    严重: StandardWrapper.Throwable
    org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'noticeController': Unsatisfied dependency expressed through field 'nts'; nested exception is org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'noticeService' is expected to be of type 'service.NoticeService' but was actually of type 'com.sun.proxy.$Proxy211'
    	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588)
    	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
    	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
    	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
    	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)
    	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
    	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
    	at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:668)
    	at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:634)
    	at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:682)
    	at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:553)
    	at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:494)
    	at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:171)
    	at javax.servlet.GenericServlet.init(GenericServlet.java:158)
    	at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1231)
    	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1144)
    	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1031)
    	at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4901)
    	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5188)
    	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
    	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399)
    	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    	at java.lang.Thread.run(Thread.java:745)
    Caused by: org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'noticeService' is expected to be of type 'service.NoticeService' but was actually of type 'com.sun.proxy.$Proxy211'
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.checkBeanNotOfRequiredType(DefaultListableBeanFactory.java:1510)
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.checkBeanNotOfRequiredType(DefaultListableBeanFactory.java:1517)
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1489)
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1104)
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066)
    	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
    	... 31 more
    
    六月 23, 2019 6:55:09 下午 org.apache.catalina.core.StandardContext loadOnStartup
    严重: Servlet [spring] in web application [/mainWeb] threw load() exception
    org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'noticeService' is expected to be of type '.service.NoticeService' but was actually of type 'com.sun.proxy.$Proxy211'
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.checkBeanNotOfRequiredType(DefaultListableBeanFactory.java:1510)
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.checkBeanNotOfRequiredType(DefaultListableBeanFactory.java:1517)
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1489)
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1104)
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066)
    	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
    	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
    	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
    	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
    	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)
    	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
    	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
    	at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:668)
    	at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:634)
    	at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:682)
    	at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:553)
    	at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:494)
    	at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:171)
    	at javax.servlet.GenericServlet.init(GenericServlet.java:158)
    	at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1231)
    	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1144)
    	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1031)
    	at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4901)
    	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5188)
    	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
    	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399)
    	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    	at java.lang.Thread.run(Thread.java:745)
    

      

  • 相关阅读:
    我们在期待什么?
    ASP.NET的本质–IIS以及进程模式
    javascript开发中要注意的事情
    通过配置web.config发电子邮件详解
    VS2005 中文版下载
    td自动换行CSS
    巧妙利用图片IMG的onerror事件
    网页 页面不缓存
    JS检测对像(支持多版本)
    利用js预缓存图片
  • 原文地址:https://www.cnblogs.com/timeout/p/11073820.html
Copyright © 2011-2022 走看看