[jira] [Commented] (CAMEL-9421) CxfEndpoint Not using proper Service Factory when javax.jws.WebService is proxied
[ https://issues.apache.org/jira/browse/CAMEL-9421?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16855780#comment-16855780 ] Freeman Fang commented on CAMEL-9421: - Hi [~jkampf], If you have a reproducer project I'd like to take a close look. Thanks! Freeman > 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 >Priority: Minor > > 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 (v7.6.3#76005)
[jira] [Commented] (CAMEL-9421) CxfEndpoint Not using proper Service Factory when javax.jws.WebService is proxied
[ https://issues.apache.org/jira/browse/CAMEL-9421?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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] [Commented] (CAMEL-9421) CxfEndpoint Not using proper Service Factory when javax.jws.WebService is proxied
[ https://issues.apache.org/jira/browse/CAMEL-9421?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15904777#comment-15904777 ] Claus Ibsen commented on CAMEL-9421: Joseph do you have a sample project or unit test that reproduces this issue? > 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] [Commented] (CAMEL-9421) CxfEndpoint Not using proper Service Factory when javax.jws.WebService is proxied
[ https://issues.apache.org/jira/browse/CAMEL-9421?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15261982#comment-15261982 ] Claus Ibsen commented on CAMEL-9421: This is an old version of Camel. Try with latest release. > 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
[ https://issues.apache.org/jira/browse/CAMEL-9421?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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)