`

Failed to convert property value of type [$Proxy13

阅读更多
Failed to convert property value of type [$Proxy13] to required type


PropertyAccessException 1: org.springframework.beans.TypeMismatchException: Failed to convert property value of type [$Proxy13] to required type [com.makeprogress.dao.AuthorDaoImp] for property 'authorDaoImp'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [$Proxy13] to required type [com.makeprogress.dao.AuthorDaoImp] for property 'authorDaoImp': no matching editors or conversion strategy found
Caused by:
org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessException details (1) are:
PropertyAccessException 1:
org.springframework.beans.TypeMismatchException: Failed to convert property value of type [$Proxy13] to required type [com.makeprogress.dao.AuthorDaoImp] for property 'authorDaoImp'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [$Proxy13] to required type [com.makeprogress.dao.AuthorDaoImp] for property 'authorDaoImp': no matching editors or conversion strategy found
Caused by:
java.lang.IllegalArgumentException: Cannot convert value of type [$Proxy13] to required type [com.makeprogress.dao.AuthorDaoImp] for property 'authorDaoImp': 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.setPropertyValue(BeanWrapperImpl.java:815)



当系统出现类似上面的异常信息时,很可能你引用了已经实现了自动代理的Bean,  Cannot convert value of type [$Proxy13] to required type [com.makeprogress.dao.AuthorDaoImp] for property 'authorDaoImp' 提示的意思:你将authorDaoImp注入到一个spring受管Bean中,  但是spring容器提示你注入的Bean类型不对,它说你注入的是 [$Proxy13] 类型,这就说明你可能在无意中将authorDaoImp实现了代理, 此时你再在spring容器中引用 authorDaoImp时得到的将是代理类型。示例如下(在数据源,事务管理器配置完整的前提下):



<bean id="authorDaoImp" class="com.makeprogress.dao.AuthorDaoImp">
          <property name="hibernateTemplate">
                  <ref bean="hibernateTemplate"/>
          </property>
    </bean>
     

    <bean id="userLoginBo" class="com.makeprogress.bo.UserLoginBo">
           <property name="authorDaoImp">
                  <ref bean="authorDaoImp"/>
           </property>
        
    </bean>
   
         <!-- 配置事务管理器 -->
       <bean id="transactionManager"  class="org.springframework.orm.hibernate3.HibernateTransactionManager">
          <property name="sessionFactory" ref="sessionFactory"/>
       </bean>
      
     
       <!-- 配置事务拦截bean -->
       <bean id="transactionInterceptor"  class="org.springframework.transaction.interceptor.TransactionInterceptor">


       <!-- 事务拦截bean需要注入一个事务管理器 -->
             <property name="transactionManager" ref="transactionManager"/>
             <property name="transactionAttributes">
                   <props>
                       <prop key="insert*">PROPAGATION_REQUIRED</prop>
                       <prop key="find*">PROPAGATION_REQUIRED</prop>
                       <prop key="add*">PROPAGATION_REQUIRED</prop>
                        <prop key="save">PROPAGATION_REQUIRED</prop>
                        <prop key="Print*">PROPAGATION_REQUIRED</prop>
                   </props>
             </property>
       </bean>
     
        <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">  
                <property name="beanNames"> 
                    <value>validateUserBean,authorDaoImp</value>
                
                </property> 
                <property name="interceptorNames">  
                        <list>  
                                <value>transactionInterceptor</value>  
                                <!--  
                                此处增加新的Interceptor 
                                -->  
                        </list>  
                </property>  
        </bean>  
     



上面红色显示的authorDaoImp对象注入给了userLoginBo受管Bean, 但是下面的配置中spring为authorDaoImp生成了自动代理,所以在上面的注入中注入的将是代理对象(提示信息中的 [$Proxy13] )而不是原来的authorDaoImp对象,这就产生了上面错误信息。



这种异常根据其产生的原因可以用下面二种方法解决:

如果异常产生原因是你将代理Bean注入给了其它受管Bean

1. 将自动生成代理的authorDaoImp的配置去掉.

2. 在接受注入的Bean中,将注入Bean类型改为它的接口类型.

3.不要将自动生成了代理的Bean注入给其它受管Bean.

如果异常产生原因是使用getBean("")方法产生时

2.不获得自动生成了代理的Bean.

3 . 在使用XXX.getBean("")方法得到生成了自动代理的受管Bean时, 使用它的接口为其造型.

分享到:
评论

相关推荐

    Java动态代理内存中生成的$Proxy0类

    Java动态代理内存中生成的$Proxy0类

    java.lang.NoSuchMethodException: com.sun.proxy.$Proxy58.list错误解决办法

    在这个特定的问题中,错误提示是`java.lang.NoSuchMethodException: com.sun.proxy.$Proxy58.list()`,这意味着在`com.sun.proxy.$Proxy58`这个动态生成的代理类中找不到名为`list`的方法。 首先,我们需要理解`...

    Failed to log into NFC Server

    1.Connect to the ESX host using SSH. For more information, see Connecting to an ESX host using an SSH client (1019852). 2.Take a backup of the /etc/vmware/config file using this command: cp /etc/...

    PHP代理脚本php-proxy.zip

    php-proxy 是基于 PHP,Symfony 和 cURL 的代理脚本,这个库借鉴了 Glype,Jenssegers proxy 和 Guzzle 的经验。...// send the response back to the client $response-&gt;send(); 标签:phpproxy

    ngx_http_proxy_connect_module.zip

    在这个配置中,Nginx监听8080端口,当接收到CONNECT请求时,会尝试连接到配置的`$proxy_host:$proxy_port`。 使用该模块需要注意一些安全问题,因为透明代理可能被滥用为攻击跳板或绕过防火墙策略。为了安全起见,...

    Error:(26, 13) Failed to resolve: com.android.support:appcompat-v7:29.+ *****

    在Android开发过程中,经常会遇到"Error:(26, 13) Failed to resolve: com.android.support:appcompat-v7:29.+”这样的错误提示,这是由于依赖库无法正确解析导致的。该错误通常涉及到Android支持库版本不匹配或者...

    解决 github项目clone报错 Failed connect to github.com:443; 解决

    系统环境:CentOS Linux release 7.6.1810 (Core) 起因:npm构建时报错 ... fatal: unable to access 'https://github.com/nhn/raphael.git/': Failed connect to github.com:443; Connection timed out npm

    ProXY 4 To 6

    "ProXY 4 To 6" 是一个专门用于将IPv4网络连接转换为IPv6网络连接的软件工具。这个标题暗示了它可能是解决IPv4地址空间耗尽问题的一种解决方案,使得IPv4设备能够访问IPv6网络资源。 **描述分析:** 描述中的“Ipv4...

    rest-proxy:RestProxy

    use RestProxy\RestProxy; use RestProxy\CurlWrapper; $proxy = new RestProxy( Request::createFromGlobals(), new CurlWrapper() ); $proxy-&gt;register('github', 'https://api.github.com'); $proxy-&gt;run(); ...

    ProXY4To6-v2.4.zip

    《ProXY4To6:IPv4到IPv6的过渡技术详解》 在当前的互联网环境中,IPv4地址的枯竭已经成为一个不容忽视的问题。为了解决这个问题并推进下一代互联网IPv6的发展,各种过渡技术应运而生。其中,ProXY4To6是一个重要的...

    ABAP 调用ABAP PROXY

    DATA: lo_proxy TYPE REF TO zcl_my_proxy_class. CREATE OBJECT lo_proxy. lo_proxy-&gt;set_parameter( 'PARAM1', 'Value1' ). lo_proxy-&gt;set_parameter( 'PARAM2', 'Value2' ). TRY. DATA(lr_result) = lo_proxy-...

    解决代理转发post请求失败

    解决代理转发post请求失败

    proxy.jsp、proxy.ashx、proxy.php、proxy.config

    配置时同样需要将`proxy.ashx`部署到服务器,并在ArcGIS JavaScript API中设置`proxyUrl`属性。 **proxy.php** 是PHP语言实现的代理服务,适用于PHP环境,如Apache或Nginx。对于那些基于PHP的Web应用,可以使用`...

    让iis记录nginx反向代理的真实ip

    nginx配置示例: 代码如下:server{ location { … proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; … }} 二、在iis站点上安装isapi filter 在f5的开发论坛上找到的,按开发者的话说,是...

    WinHTTP Web Proxy Auto-Discovery Service 服务处于停止状态

    WinHTTP Web Proxy Auto-Discovery Service 服务处于 停止 状态还有,我的服务器没有使用WEB代理和防火墙客户端。

    boostdesc_bgm.i,vgg_generated_48.i等.zip

    To use proxy please check/specify these environment variables: - http_proxy/https_proxy - and/or HTTP_PROXY/HTTPS_PROXY 可以下载本资源结合我的博文(https://editor.csdn.net/md/?articleId=121682921)...

    OPC COM ProxyStub MergeModule (x86)_foundation_proxy_usvfs_proxy

    Proxy和Stub的作用是解决进程间通信的问题,使得不同地址空间的应用程序可以透明地调用彼此的功能。 3. **MergeModule (x86)**:MergeModule是一个MSI(Microsoft Installer)模块,用于将组件打包到安装程序中。...

    foxyproxy_standard

    FoxyProxy 是一款高级代理服务器管理工具,是 Firefox 火狐浏览器的代理插件,相比比 SwitchProxy、ProxyButton、QuickProxy、xyzproxy、ProxyTex 等扩展提供更多的功能。 FoxyProxy 通过使用通配符、正则表达式和...

Global site tag (gtag.js) - Google Analytics