[ https://issues.apache.org/jira/browse/CXF-1645?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Kulp resolved CXF-1645. ------------------------------ Resolution: Fixed > ResourceInjector fails to inject into (Spring) proxies if resource to be in > injected is subclassed > -------------------------------------------------------------------------------------------------- > > Key: CXF-1645 > URL: https://issues.apache.org/jira/browse/CXF-1645 > Project: CXF > Issue Type: Bug > Components: Core > Affects Versions: 2.1, 2.0.6, 2.1.1, 2.0.7 > Reporter: Andreas Benneke > Assignee: Daniel Kulp > Fix For: 2.1.1, 2.0.7 > > Attachments: ResourceInjector.patch > > > If the target is a proxy ResourceInjector tries to resolve an appropriate > setter method for the resource using > Method targetMethod = getTarget().getClass().getMethod(method.getName(), > new Class[]{resource.getClass()}); > targetMethod.invoke(getTarget(), resource); > This fails if the resource has been subclassed because getMethod() (still) > does only exact matches (see > http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4287725). > This is (for example) the reason why injecting the WebServiceContext into a > (Spring) proxy does not work: The real implementation WebServiceContextImpl > is always a subclass (see thread http://www.mail-archive.com/[EMAIL > PROTECTED]/msg03050.html) > As a solutions, the ResourceInjector might implement it's own matching > algorithm or e. g. use Spring's MethodInvoker instead which already contains > such an algorithm: > MethodInvoker targetInvoker = new MethodInvoker(); > targetInvoker.setTargetObject(getTarget()); > targetInvoker.setTargetMethod(method.getName()); > targetInvoker.setArguments(new Object[]{resource}); > targetInvoker.prepare(); > targetInvoker.invoke(); -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.