Okay found a mistake in the cxf namespace parser - and added a fix for correct setter on the endpoint.
Nobody really use that service factory as camel sets one out of the box. On Wed, Dec 16, 2015 at 3:58 PM, Joseph Kampf <joseph.ka...@gmail.com> wrote: > BTW, > > You should also consider removing the serviceFactory element from the XSD. > That is also misleading. > > Joe > > > > > > On 12/16/15, 9:29 AM, "Claus Ibsen" <claus.ib...@gmail.com> wrote: > >>That was a mistake in the camel cxf documentation - i am removing >>that. Also that other xml file is not in use in an unit test and its >>being removed as well. >> >>You dont need to set that service factory when using camel-cxf. Just >>remove it from your code. >> >> >> >>On Wed, Dec 16, 2015 at 1:21 PM, Joseph Kampf <joseph.ka...@gmail.com> wrote: >>> I am trying to specify the ServiceFactory used by my CXF Endpoint. >>> >>> <cxf:cxfEndpoint id="cxfBeanFromEndpoint" >>> address="${esbservices.proxy.baseurl}/path" >>> serviceClass="MyPortClass" >>> endpointName="s:completePort" serviceName="s:aria_complete_api" >>> wsdlURL="MyWsdl.wsdl" >>> xmlns:s="myNamespace"> >>> <cxf:inInterceptors> >>> <bean class="org.apache.cxf.interceptor.LoggingInInterceptor" /> >>> </cxf:inInterceptors> >>> <cxf:outInterceptors> >>> <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor" /> >>> </cxf:outInterceptors> >>> <cxf:serviceFactory> >>> <bean class="org.apache.cxf.jaxws.JaxWsServerFactoryBean" /> >>> </cxf:serviceFactory> >>> </cxf:cxfEndpoint> >>> >>> However I am getting the following error: >>> >>> 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.onApplicationEvent(SpringCamelContext.java:120) >>> ... 10 more >>> Caused by: org.apache.camel.ResolveEndpointFailedException: 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.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:534) >>> at >>> org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:71) >>> at >>> org.apache.camel.model.RouteDefinition.resolveEndpoint(RouteDefinition.java:190) >>> at >>> org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:106) >>> at >>> org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:112) >>> at >>> org.apache.camel.model.FromDefinition.resolveEndpoint(FromDefinition.java:72) >>> at >>> org.apache.camel.impl.DefaultRouteContext.getEndpoint(DefaultRouteContext.java:88) >>> at >>> org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:888) >>> at >>> org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:175) >>> ... 18 more >>> Caused by: org.apache.camel.NoSuchBeanException: 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.impl.CompositeRegistry.lookupByNameAndType(CompositeRegistry.java:62) >>> at >>> org.apache.camel.impl.PropertyPlaceholderDelegateRegistry.lookupByNameAndType(PropertyPlaceholderDelegateRegistry.java:63) >>> at >>> org.apache.camel.util.CamelContextHelper.lookup(CamelContextHelper.java:129) >>> at >>> org.apache.camel.util.CamelContextHelper.mandatoryLookup(CamelContextHelper.java:149) >>> at >>> org.apache.camel.component.cxf.CxfComponent.createEndpoint(CxfComponent.java:70) >>> at >>> org.apache.camel.impl.DefaultComponent.createEndpoint(DefaultComponent.java:123) >>> at >>> org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:514) >>> ... 26 more >>> Caused by: org.springframework.beans.factory.BeanCreationException: 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.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1455) >>> at >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1160) >>> at >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) >>> at >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458) >>> at >>> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:312) >>> at >>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195) >>> at >>> org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1123) >>> at >>> org.apache.camel.spring.spi.ApplicationContextRegistry.lookupByNameAndType(ApplicationContextRegistry.java:47) >>> at >>> org.apache.camel.impl.CompositeRegistry.lookupByNameAndType(CompositeRegistry.java:56) >>> ... 32 more >>> Caused by: 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.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:1044) >>> at >>> org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:904) >>> at >>> org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:75) >>> at >>> org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:57) >>> at >>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1452) >>> ... 40 more >>> >>> According to the documentation at : http://camel.apache.org/cxf I should >>> be able to specify this. >>> >>> I also found this XML in the Camel-cxf test/resources directory: >>> GreeterEndpointsForProducer.xml However I can’t seem to find a unit test >>> that uses it. >>> >>> >>> >>> >> >> >> >>-- >>Claus Ibsen >>----------------- >>http://davsclaus.com @davsclaus >>Camel in Action 2: https://www.manning.com/ibsen2 > -- Claus Ibsen ----------------- http://davsclaus.com @davsclaus Camel in Action 2: https://www.manning.com/ibsen2