I allready have @Ressource annotation injection support in my spring-context
(it is automatically enabled by <context:component-scan>)

Moving the @Resource to a setter fix the issue (as only Spring will support
this).

Changing <aop:* and <tx:* to use proxy-target-class=true also fix this issue
as another option.

Anyway this sounds like a CXF bug to me, isn't it ?

2009/5/5 Karthik Abram <[email protected]>

> Try the following:
> Add <bean
>
> class="org.springframework.context.annotation.CommonAnnotationBeanPostProces
> sor"/>
>
>
> -----Original Message-----
> From: nicolas de loof [mailto:[email protected]]
> Sent: Tuesday, May 05, 2009 4:39 AM
> To: [email protected]
> Subject: @Resource injection fails in 2.2.1
>
> Hi
> I'm using <jaxws:endpoint to expose my web services, generated using
> wsdl2java :
>
>  <jaxws:endpoint address="/consultation/1.0"
> implementor="#consultationEndPoint"
> wsdlLocation="wsdl/consultation_v1.0.wsdl"/>
>
>  <bean id="consultationEndPoint" class="com.foo.ConsultationEndPoint" />
>
>
> My EndPoint uses @Resource annotation to get Spring business-layer beans.
> I get an error on CXF 2.2.1 :
>
> Caused by: java.lang.IllegalArgumentException: Can not set
> com.foo.ConsultationService field com.foo.ConsultationEndPoint.service to
> $Proxy176
> at
>
> sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeF
> ieldAccessorImpl.java:146)
>
> The resource injector seems to use the proxy generated by <jaxws:endpoint>
> for resource injection and not the implementor bean.
>
>
> Nicolas
>
>

Reply via email to