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

Joseph Kampf commented on CAMEL-9421:
-------------------------------------

[~davsclaus],  Sorry I do not.  We have been using the PAYLOAD dataformat and 
it is working.  We did upgrade to 2.15.4, but we did not convert back to try.



> CxfEndpoint Not using proper Service Factory when javax.jws.WebService is 
> proxied
> ---------------------------------------------------------------------------------
>
>                 Key: CAMEL-9421
>                 URL: https://issues.apache.org/jira/browse/CAMEL-9421
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-cxf
>    Affects Versions: 2.13.3
>         Environment: karaf 3.0.2
>            Reporter: Joseph Kampf
>
> Clearing out the karaf/data/cache directory and then doing a fresh deploy of 
> the Bundle works fine.  
> However after restarting Karaf the 
> org.apache.cxf.jaxws.JaxWsServerFactoryBean is not used by the CxfEndpoint.  
> Instead the org.apache.cxf.frontend.ServerFactoryBean is used.  This causes 
> the mapping of WSDL Operations to SEI methods to not work.  
> This results in error messages:
> {quote}
> 2015-12-15 09:51:18,729 | WARN  | xtenderThread-42 | 
> ReflectionServiceFactoryBean     | 194 - org.apache.cxf.cxf-rt-core - 2.7.11 
> | No method was found for the WSDL operation <%WSDL Operation%>{quote}
> It also causes the CXF page to not list the WSDL Operations under the SOAP 
> Port.
> The reason this is happening is because the annotations that are on the SEI 
> class are proxied.  This causes the annotation check in 
> org.apache.camel.component.cxf.CxfSpringEndpoint.createServerFactoryBean() to 
> seem as if the SEI does not have the javax.jws.WebService annotation.
> The annotation is on the list of annotations for the SEI, but they are 
> proxied by sun.reflect.annotation.AnnotationInvocationHandler.
> One solution I see would be to change the implementation of 
> org.apache.camel.component.cxf.CxfEndpointUtils.hasAnnotation() method.  
> Instead of relying on Class.getAnnoation(), instead loop through the 
> annotations on the class and not only check the annotation class directly, 
> but also try to reach into the annotation to determine if it is a proxy of 
> the annotation in question.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to