[ 
https://issues.apache.org/jira/browse/CXF-3492?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13029568#comment-13029568
 ] 

Edward Ost commented on CXF-3492:
---------------------------------

Actually the solution in that thread does work:

<jaxws:endpoint id="morticeAdapterEndpoint"
implementor="#MorticeCourseUnitService"
implementorClass="au.edu.mq.informatics.dataswitch.poc.mortice.common.MorticeCourseUnitService"
address="/MorticeAdapterServiceProvider">

The error was because 
org.springframework.osgi.service.util.internal.aop.ProxyUtils.createProxy calls 
ProxyFactory.setOpaque(true), which prevents the Advised interface being set on 
the proxy.

So org.apache.cxf.common.util.SpringAopClassHelper.getRealClassInternal should 
probably check first whether it's assignable to Advised, and if not throw an 
more meaningful exception up to EndpointImpl.getImplementorClass for an 
"implementorClass must be supplied" message.

Maybe this was obvious from the stacktrace in hindsight  ;-)

 

On Fri, Apr 29, 2011 at 10:10 AM, David Metcalf <[email protected]> wrote:
Hi Ed,

To me this looks like a bug in Spring's  
org.springframework.aop.support.AopUtils.isAopProxy(Object object)

It returns true for any JDK or CGLIB proxy, whether or not the object is 
assignable to org.springframework.aop.framework.Advised.  (I think this is 
because before Spring DM they assumed all SpringProxy instances were proxies 
for AOP advice, but I expect they're now SpringProxys for OSGI too).

org.apache.cxf.common.util.SpringAopClassHelper.getRealClassInternal assumes it 
must be assignable to Advised, because Spring told it it was an AopProxy.

I found this thread too 
http://mail-archives.apache.org/mod_mbox/cxf-users/201004.mbox/%[email protected]%3E,
 
but the originator's solution doesn't seem to help and I suspect the change Dan 
Kulp refers too is different (I can dig into that to check later) 
  
I think I may need a patch for either CXF or Spring to get this working.

> Spring OSGI Service Reference as JAXWS:endpoint implementor
> -----------------------------------------------------------
>
>                 Key: CXF-3492
>                 URL: https://issues.apache.org/jira/browse/CXF-3492
>             Project: CXF
>          Issue Type: Bug
>          Components: OSGi
>    Affects Versions: 2.4
>            Reporter: Edward Ost
>
> Problem pointing <jaxws:endpoint> to an implementor that's provided by 
> <osgi:reference>

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to