[jira] [Commented] (CAMEL-9421) CxfEndpoint Not using proper Service Factory when javax.jws.WebService is proxied

2017-03-10 Thread Joseph Kampf (JIRA)

[ 
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)


[jira] [Comment Edited] (CAMEL-9421) CxfEndpoint Not using proper Service Factory when javax.jws.WebService is proxied

2015-12-15 Thread Joseph Kampf (JIRA)

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

Joseph Kampf edited comment on CAMEL-9421 at 12/15/15 8:22 PM:
---

I found that if I use the Data format of "PAYLOAD", I am able to get the 
correct Service Factory.  However that means my route needs to use a jaxbFormat 
to unmarshal and marshal the XML to the JaxWS classes.


was (Author: jkampf):
I found that if I use the Data format of "MESSAGE", I am able to get the 
correct Service Factory.  However that means my route needs to use a jaxbFormat 
to unmarshal and marshal the XML to the JaxWS classes.

> 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.4#6332)


[jira] [Commented] (CAMEL-9421) CxfEndpoint Not using proper Service Factory when javax.jws.WebService is proxied

2015-12-15 Thread Joseph Kampf (JIRA)

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

Joseph Kampf commented on CAMEL-9421:
-

I found that if I use the Data format of "MESSAGE", I am able to get the 
correct Service Factory.  However that means my route needs to use a jaxbFormat 
to unmarshal and marshal the XML to the JaxWS classes.

> 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.4#6332)


[jira] [Commented] (CAMEL-9422) ServiceFactory of Cxf Endpoint is not working

2015-12-15 Thread Joseph Kampf (JIRA)

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

Joseph Kampf commented on CAMEL-9422:
-

I found an example XML in the camel-cxf/test/resources  
GreeterEndpointsForProducer.xml   However I can't seem to find a unit test that 
uses it.


> ServiceFactory of Cxf Endpoint is not working
> -
>
> Key: CAMEL-9422
> URL: https://issues.apache.org/jira/browse/CAMEL-9422
> Project: Camel
>  Issue Type: Bug
>  Components: camel-cxf
> Environment: karaf 3.0.2
>Reporter: Joseph Kampf
>
> I attempted to explicitly set the Service Factory as per the documentation 
> found at: http://cxf.apache.org/docs/jax-ws-configuration.html.
> {code:xml}
>  address="${esbservices.proxy.baseurl}/path"
>   serviceClass="MyPortClass"
>   endpointName="s:completePort" serviceName="s:aria_complete_api"
>   wsdlURL="MyWsdl.wsdl"
>   xmlns:s="myNamespace">
>   
>class="org.apache.cxf.interceptor.LoggingInInterceptor" />
>   
>   
>class="org.apache.cxf.interceptor.LoggingOutInterceptor" />
>   
>   
>class="org.apache.cxf.jaxws.JaxWsServerFactoryBean" />
>   
>   
> {code}
> When I deploy the bundle I get:
> {code}
> karaf@root()> Exception in thread "SpringOsgiExtenderThread-50" 
> org.apache.camel.RuntimeCamelException: 
> org.apache.camel.FailedToCreateRouteException: Failed to create route 
> aria.esbservices.complete.soap.proxy: 
> Route(aria.esbservices.complete.soap.proxy)[[From[cxf:bean:a... because of 
> Failed to resolve endpoint: cxf://bean:cxfBeanFromEndpoint due to: Cannot 
> lookup: cxfBeanFromEndpoint from registry: 
> org.apache.camel.spring.spi.ApplicationContextRegistry@51cb33dc with expected 
> type: class org.apache.camel.component.cxf.CxfEndpoint due: Error creating 
> bean with name 'cxfBeanFromEndpoint': Error setting property values; nested 
> exception is org.springframework.beans.NotWritablePropertyException: Invalid 
> property 'serviceFactory' of bean class 
> [org.apache.camel.component.cxf.CxfSpringEndpoint]: Bean property 
> 'serviceFactory' is not writable or has an invalid setter method. Does the 
> parameter type of the setter match the return type of the getter?
>   at 
> org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1363)
>   at 
> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:122)
>   at 
> org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:318)
>   at 
> org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:96)
>   at 
> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:334)
>   at 
> org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:950)
>   at 
> org.springframework.osgi.context.support.AbstractOsgiBundleApplicationContext.finishRefresh(AbstractOsgiBundleApplicationContext.java:235)
>   at 
> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:358)
>   at 
> org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
>   at 
> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:320)
>   at 
> org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:132)
>   at java.lang.Thread.run(Thread.java:745)
> Caused by: org.apache.camel.FailedToCreateRouteException: Failed to create 
> route aria.esbservices.complete.soap.proxy: 
> Route(aria.esbservices.complete.soap.proxy)[[From[cxf:bean:a... because of 
> Failed to resolve endpoint: cxf://bean:cxfBeanFromEndpoint due to: Cannot 
> lookup: cxfBeanFromEndpoint from registry: 
> org.apache.camel.spring.spi.ApplicationContextRegistry@51cb33dc with expected 
> type: class org.apache.camel.component.cxf.CxfEndpoint due: Error creating 
> bean with name 'cxfBeanFromEndpoint': Error setting property values; nested 
> exception is org.springframework.beans.NotWritablePropertyException: Invalid 
> property 'serviceFactory' of bean class 
> [org.apache.camel.component.cxf.CxfSpringEndpoint]: Bean property 
> 'serviceFactory' is not writable or has an invalid setter method. Does the 

[jira] [Created] (CAMEL-9422) ServiceFactory of Cxf Endpoint is not working

2015-12-15 Thread Joseph Kampf (JIRA)
Joseph Kampf created CAMEL-9422:
---

 Summary: ServiceFactory of Cxf Endpoint is not working
 Key: CAMEL-9422
 URL: https://issues.apache.org/jira/browse/CAMEL-9422
 Project: Camel
  Issue Type: Bug
  Components: camel-cxf
 Environment: karaf 3.0.2
Reporter: Joseph Kampf


I attempted to explicitly set the Service Factory as per the documentation 
found at: http://cxf.apache.org/docs/jax-ws-configuration.html.

{code:xml}











{code}

When I deploy the bundle I get:

{code}
karaf@root()> Exception in thread "SpringOsgiExtenderThread-50" 
org.apache.camel.RuntimeCamelException: 
org.apache.camel.FailedToCreateRouteException: Failed to create route 
aria.esbservices.complete.soap.proxy: 
Route(aria.esbservices.complete.soap.proxy)[[From[cxf:bean:a... because of 
Failed to resolve endpoint: cxf://bean:cxfBeanFromEndpoint due to: Cannot 
lookup: cxfBeanFromEndpoint from registry: 
org.apache.camel.spring.spi.ApplicationContextRegistry@51cb33dc with expected 
type: class org.apache.camel.component.cxf.CxfEndpoint due: Error creating bean 
with name 'cxfBeanFromEndpoint': Error setting property values; nested 
exception is org.springframework.beans.NotWritablePropertyException: Invalid 
property 'serviceFactory' of bean class 
[org.apache.camel.component.cxf.CxfSpringEndpoint]: Bean property 
'serviceFactory' is not writable or has an invalid setter method. Does the 
parameter type of the setter match the return type of the getter?
at 
org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1363)
at 
org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:122)
at 
org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:318)
at 
org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:96)
at 
org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:334)
at 
org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:950)
at 
org.springframework.osgi.context.support.AbstractOsgiBundleApplicationContext.finishRefresh(AbstractOsgiBundleApplicationContext.java:235)
at 
org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:358)
at 
org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
at 
org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:320)
at 
org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:132)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.camel.FailedToCreateRouteException: Failed to create 
route aria.esbservices.complete.soap.proxy: 
Route(aria.esbservices.complete.soap.proxy)[[From[cxf:bean:a... because of 
Failed to resolve endpoint: cxf://bean:cxfBeanFromEndpoint due to: Cannot 
lookup: cxfBeanFromEndpoint from registry: 
org.apache.camel.spring.spi.ApplicationContextRegistry@51cb33dc with expected 
type: class org.apache.camel.component.cxf.CxfEndpoint due: Error creating bean 
with name 'cxfBeanFromEndpoint': Error setting property values; nested 
exception is org.springframework.beans.NotWritablePropertyException: Invalid 
property 'serviceFactory' of bean class 
[org.apache.camel.component.cxf.CxfSpringEndpoint]: Bean property 
'serviceFactory' is not writable or has an invalid setter method. Does the 
parameter type of the setter match the return type of the getter?
at 
org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:180)
at 
org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:780)
at 
org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:2068)
at 
org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1816)
at 
org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1683)
at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
at 
org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1651)
at 
org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:254)
at 
org.apache.camel.spring.SpringCamelContext.onApplicationEve

[jira] [Created] (CAMEL-9421) CxfEndpoint Not using proper Service Factory when javax.jws.WebService is proxied

2015-12-15 Thread Joseph Kampf (JIRA)
Joseph Kampf created CAMEL-9421:
---

 Summary: 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:
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%>

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.4#6332)


[jira] [Updated] (CAMEL-9421) CxfEndpoint Not using proper Service Factory when javax.jws.WebService is proxied

2015-12-15 Thread Joseph Kampf (JIRA)

 [ 
https://issues.apache.org/jira/browse/CAMEL-9421?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Joseph Kampf updated CAMEL-9421:

Description: 
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.


  was:
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:
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%>

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.



> 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 t

[jira] [Updated] (CAMEL-9421) CxfEndpoint Not using proper Service Factory when javax.jws.WebService is proxied

2015-12-15 Thread Joseph Kampf (JIRA)

 [ 
https://issues.apache.org/jira/browse/CAMEL-9421?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Joseph Kampf updated CAMEL-9421:

Description: 
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.


  was:
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.



> 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