当前位置: 首页 > 面试题库 >

Spring-Bean创建中的奇怪错误

汪庆
2023-03-14
问题内容

知道为什么我会收到这个例外吗?

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'myService' defined in class path resource [context.xml]: Initialization of bean failed; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert property value of type [$Proxy54 implementing org.springframework.aop.SpringProxy,org.springframework.aop.framework.Advised,net.sf.cglib.proxy.Factory,org.springframework.beans.factory.InitializingBean] to required type [com.mycompany.service.dao.MyDAO] for property 'myDAO'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [$Proxy54 implementing org.springframework.aop.SpringProxy,org.springframework.aop.framework.Advised,net.sf.cglib.proxy.Factory,org.springframework.beans.factory.InitializingBean] to required type [com.mycompany.service.dao.MyDAO] for property 'myDAO': no matching editors or conversion strategy found
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:480)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:671)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:610)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:499)
    ... 36 more
Caused by: java.lang.IllegalArgumentException: Cannot convert value of type [$Proxy54 implementing org.springframework.aop.SpringProxy,org.springframework.aop.framework.Advised,net.sf.cglib.proxy.Factory,org.springframework.beans.factory.InitializingBean] to required type [com.mycompany.service.dao.MyDAO] for property 'myDAO': no matching editors or conversion strategy found
    at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:231)
    at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:138)
    at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:386)
... 62 more

问题答案:

我怀疑如果ProdMiscDAO是接口(是吗?),您将不会遇到此错误。我相信您可能有一个正在使用cglib代理,执行魔术等操作的类,最后,它不能安全地转换为setter或构造函数中的参数。尝试对接口进行编程,看看错误是否消失。

更新ProdMiscDAO不是接口。这是一个扩展的类SqlMappedClientDaoSupport

鉴于此,我建议您尝试以下操作:

  1. 重命名ProdMiscDAOSqlMappedProdMiscDAO
  2. 从已SqlMappedProdMiscDAO命名的接口中提取一个接口ProdMiscDAO(例如“ class SqlMappedProdMiscDAO implements ProdMiscDAO”)
  3. 浏览所有使用的代码,SqlMappedProdMiscDAO然后将其更改为use ProdMiscDAO
  4. 将spring配置为实例化a SqlMappedProdMiscDAO,将其连接到需要它的所有类。

这使您的DAO实现仍可扩展,SqlMappedClientDaoSupport但也具有接口。在切换了所有类以使用接口而不是类之后,Spring将不必使用cglib代理您的DAO,并且错误应消失。



 类似资料:
  • 我对JAVA web应用程序非常陌生,所以请记住这一点。我承担了一个非常大的项目,令人望而生畏。我终于修复了Maven依赖,现在在Tomcat上运行时遇到了第一个错误。 包含eu.digient.billfold.goshgame.game.level.ItemConfigFactoryImpl模块的Spring配置:

  • 你好,我正在为我的openGL项目制作一个图像和纹理类,当我添加stb_image一些纹理时,就开始在图像边缘添加噪声。 图像类别: 纹理类: 图像为128x128像素 以下是它在 paint.net 中的样子: 以下是渲染时的外观: 我相信图像加载很好,因为我用图像类设置了窗口的图标,看起来很好。我认为问题源于纹理类。 解决了Jérôme Richard为我解决了这个问题。这不起作用的原因是因为

  • 我使用的是Spring 3.1.4 服务实现 DAO实现 web.xml

  • 问题内容: 我正在使用此代码: 但是在编译时出现此错误: 然后是堆栈跟踪的编译器错误。 我将在课堂开始时同时进行这两种导入: 有什么事吗 在Netbeans中,我看到自动完成选项并且Locale对象没有语法错误… 问题答案: 您的设置有些麻烦,下面的程序对我来说很好用。 它要求源代码的事实使我相信它正在尝试以某种调试模式进行编译或运行。您不需要编译java.util。*的源代码,这很奇怪。 看看我

  • 问题内容: 我在es-discuss邮件列表中遇到了以下代码: 这产生 为什么这是代码的结果?这里发生了什么事? 问题答案: 了解此“ hack”需要了解几件事: 为什么我们不只是做 如何处理论点 如何处理多个参数 函数如何处理参数 是什么呢 它们是javascript中相当高级的主题,因此它的时间要长得多。我们将从顶部开始。系好安全带! 1.为什么不只是? 什么是数组,真的吗?包含整数键的常规对

  • 我不能运行Springeureka服务器,我得到以下错误。 组织。springframework。豆。工厂UnsatifiedPendencyException:创建名为“org”的bean时出错。springframework。云netflix。尤里卡。EurekaClientAutoConfiguration$RefreshableEurekaClientConfiguration:通过字段“