Hi Onder,
on first look it seems that the
KubernetesClusterServiceAutoConfiguration doesn't get injected with
KubernetesClusterServiceConfiguration; i.e. here it is `null`[1].

Adding a starter might have caused a change in the order of bean
initialization. I would create a JIRA issue for this, not sure if we
should declare those `@Autowired` annotations with `required=true`, or
perhaps create a constructor that takes those parameters to signify
that they're required.

There's also that `--debug`[2] parameter that you can specify that
might give more clues...

zoran

[1] 
https://github.com/apache/camel/blob/49ef644fa5c7352c7757a41e9893d2d107002543/platforms/spring-boot/components-starter/camel-kubernetes-starter/src/main/java/org/apache/camel/component/kubernetes/springboot/cluster/KubernetesClusterServiceAutoConfiguration.java#L38-L39
[2] 
https://docs.spring.io/spring-boot/docs/2.1.8.RELEASE/reference/html/boot-features-spring-application.html#boot-features-startup-failure

On Wed, Sep 11, 2019 at 5:37 PM Onder SEZGIN <ondersez...@gmail.com> wrote:
>
> Hi,
>
> i have a very similar usecase where i need to implement something very
> similar what Nicola has written while ago.
>
> in my app, i have the very similar configuration and i also needed to
> use camel-http-starter.
> (of course there are bits and pieces but later on i narrowed down the error
> that the issue is due to camel-http-starter)
>
> so simply in my final attempt, what i did to demo the problem was to
> include the camel-http-starter to the original project where Nicola has
> shared in this link.
>
> https://github.com/nicolaferraro/camel-leader-election
>
> so here is my clone with that small pom change to show the issue.
>
> https://github.com/onderson/camel-leader-election/commit/7d4afae97641c5ff703522e69f5ee152deb2f82f
>
> so while Nicola's example is perfectly fine, my example fails to start
> failing and complaining about KubernetesClusterServiceAutoConfiguration
> error as below.
>
> so is there any idea what might be causing this?
>
> 18:27:27.438 [restartedMain] ERROR o.s.boot.SpringApplication -    |   |
> Application startup failed
>
> org.springframework.beans.factory.UnsatisfiedDependencyException: Error
> creating bean with name 'cacheAutoConfigurationValidatorPostProcessor'
> defined in class path resource
> [org/apache/camel/component/http/springboot/HttpComponentSSLAutoConfiguration.class]:
> Unsatisfied dependency expressed through method
> 'cacheAutoConfigurationValidatorPostProcessor' parameter 0; nested
> exception is org.springframework.beans.factory.BeanCreationException: Error
> creating bean with name 'camelContext' defined in class path resource
> [org/apache/camel/spring/boot/CamelAutoConfiguration.class]: Bean
> instantiation via factory method failed; nested exception is
> org.springframework.beans.BeanInstantiationException: Failed to instantiate
> [org.apache.camel.CamelContext]: Factory method 'camelContext' threw
> exception; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating
> bean with name 'kubernetes-cluster-service' defined in class path resource
> [org/apache/camel/component/kubernetes/springboot/cluster/KubernetesClusterServiceAutoConfiguration.class]:
> Bean instantiation via factory method failed; nested exception is
> org.springframework.beans.BeanInstantiationException: Failed to instantiate
> [org.apache.camel.cluster.CamelClusterService]: Factory method
> 'kubernetesClusterService' threw exception; nested exception is
> java.lang.IllegalArgumentException: target must be specified
>
> at
> org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(
> ConstructorResolver.java:749)
>
> at
> org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(
> ConstructorResolver.java:467)
>
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(
> AbstractAutowireCapableBeanFactory.java:1178)
>
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(
> AbstractAutowireCapableBeanFactory.java:1072)
>
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(
> AbstractAutowireCapableBeanFactory.java:511)
>
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(
> AbstractAutowireCapableBeanFactory.java:481)
>
> at
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(
> AbstractBeanFactory.java:312)
>
> at
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(
> DefaultSingletonBeanRegistry.java:230)
>
> at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(
> AbstractBeanFactory.java:308)
>
> at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(
> AbstractBeanFactory.java:202)
>
> at
> org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(
> PostProcessorRegistrationDelegate.java:176)
>
> at
> org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(
> AbstractApplicationContext.java:687)
>
> at org.springframework.context.support.AbstractApplicationContext.refresh(
> AbstractApplicationContext.java:525)
>
> at
> org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(
> EmbeddedWebApplicationContext.java:122)
>
> at org.springframework.boot.SpringApplication.refresh(
> SpringApplication.java:693)
>
> at org.springframework.boot.SpringApplication.refreshContext(
> SpringApplication.java:360)
>
> at org.springframework.boot.SpringApplication.run(SpringApplication.java:303
> )
>
> at org.springframework.boot.SpringApplication.run(
> SpringApplication.java:1118)
>
> at org.springframework.boot.SpringApplication.run(
> SpringApplication.java:1107)
>
> at uk.co.arcadiagroup.integration.spo.apll.drop.SpoApllDropApplication.main(
> SpoApllDropApplication.java:29)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke(
> NativeMethodAccessorImpl.java:62)
>
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:43)
>
> at java.lang.reflect.Method.invoke(Method.java:498)
>
> at org.springframework.boot.devtools.restart.RestartLauncher.run(
> RestartLauncher.java:49)
>
> Caused by: org.springframework.beans.factory.BeanCreationException: Error
> creating bean with name 'camelContext' defined in class path resource
> [org/apache/camel/spring/boot/CamelAutoConfiguration.class]: Bean
> instantiation via factory method failed; nested exception is
> org.springframework.beans.BeanInstantiationException: Failed to instantiate
> [org.apache.camel.CamelContext]: Factory method 'camelContext' threw
> exception; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating
> bean with name 'kubernetes-cluster-service' defined in class path resource
> [org/apache/camel/component/kubernetes/springboot/cluster/KubernetesClusterServiceAutoConfiguration.class]:
> Bean instantiation via factory method failed; nested exception is
> org.springframework.beans.BeanInstantiationException: Failed to instantiate
> [org.apache.camel.cluster.CamelClusterService]: Factory method
> 'kubernetesClusterService' threw exception; nested exception is
> java.lang.IllegalArgumentException: target must be specified
>
> at
> org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(
> ConstructorResolver.java:599)
>
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(
> AbstractAutowireCapableBeanFactory.java:1178)
>
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(
> AbstractAutowireCapableBeanFactory.java:1072)
>
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(
> AbstractAutowireCapableBeanFactory.java:511)
>
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(
> AbstractAutowireCapableBeanFactory.java:481)
>
> at
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(
> AbstractBeanFactory.java:312)
>
> at
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(
> DefaultSingletonBeanRegistry.java:230)
>
> at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(
> AbstractBeanFactory.java:308)
>
> at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(
> AbstractBeanFactory.java:202)
>
> at
> org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(
> DependencyDescriptor.java:208)
>
> at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(
> DefaultListableBeanFactory.java:1136)
>
> at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(
> DefaultListableBeanFactory.java:1064)
>
> at
> org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(
> ConstructorResolver.java:835)
>
> at
> org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(
> ConstructorResolver.java:741)
>
> ... 24 common frames omitted
>
> Caused by: org.springframework.beans.BeanInstantiationException: Failed to
> instantiate [org.apache.camel.CamelContext]: Factory method 'camelContext'
> threw exception; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating
> bean with name 'kubernetes-cluster-service' defined in class path resource
> [org/apache/camel/component/kubernetes/springboot/cluster/KubernetesClusterServiceAutoConfiguration.class]:
> Bean instantiation via factory method failed; nested exception is
> org.springframework.beans.BeanInstantiationException: Failed to instantiate
> [org.apache.camel.cluster.CamelClusterService]: Factory method
> 'kubernetesClusterService' threw exception; nested exception is
> java.lang.IllegalArgumentException: target must be specified
>
> at
> org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(
> SimpleInstantiationStrategy.java:189)
>
> at
> org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(
> ConstructorResolver.java:588)
>
> ... 37 common frames omitted
>
> Caused by: org.springframework.beans.factory.BeanCreationException: Error
> creating bean with name 'kubernetes-cluster-service' defined in class path
> resource
> [org/apache/camel/component/kubernetes/springboot/cluster/KubernetesClusterServiceAutoConfiguration.class]:
> Bean instantiation via factory method failed; nested exception is
> org.springframework.beans.BeanInstantiationException: Failed to instantiate
> [org.apache.camel.cluster.CamelClusterService]: Factory method
> 'kubernetesClusterService' threw exception; nested exception is
> java.lang.IllegalArgumentException: target must be specified
>
> at
> org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(
> ConstructorResolver.java:599)
>
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(
> AbstractAutowireCapableBeanFactory.java:1178)
>
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(
> AbstractAutowireCapableBeanFactory.java:1072)
>
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(
> AbstractAutowireCapableBeanFactory.java:511)
>
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(
> AbstractAutowireCapableBeanFactory.java:481)
>
> at
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(
> AbstractBeanFactory.java:312)
>
> at
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(
> DefaultSingletonBeanRegistry.java:230)
>
> at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(
> AbstractBeanFactory.java:308)
>
> at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(
> AbstractBeanFactory.java:202)
>
> at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(
> DefaultListableBeanFactory.java:519)
>
> at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(
> DefaultListableBeanFactory.java:508)
>
> at
> org.springframework.context.support.AbstractApplicationContext.getBeansOfType(
> AbstractApplicationContext.java:1188)
>
> at org.apache.camel.spring.boot.CamelAutoConfiguration.afterPropertiesSet(
> CamelAutoConfiguration.java:468)
>
> at
> org.apache.camel.spring.boot.CamelAutoConfiguration.doConfigureCamelContext(
> CamelAutoConfiguration.java:235)
>
> at org.apache.camel.spring.boot.CamelAutoConfiguration.camelContext(
> CamelAutoConfiguration.java:110)
>
> at
> org.apache.camel.spring.boot.CamelAutoConfiguration$$EnhancerBySpringCGLIB$$1d7bacbe.CGLIB$camelContext$1(<generated>)
>
> at
> org.apache.camel.spring.boot.CamelAutoConfiguration$$EnhancerBySpringCGLIB$$1d7bacbe$$FastClassBySpringCGLIB$$4bc32b82.invoke(<generated>)
>
> at org.springframework.cglib.proxy.MethodProxy.invokeSuper(
> MethodProxy.java:228)
>
> at
> org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(
> ConfigurationClassEnhancer.java:358)
>
> at
> org.apache.camel.spring.boot.CamelAutoConfiguration$$EnhancerBySpringCGLIB$$1d7bacbe.camelContext(<generated>)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke(
> NativeMethodAccessorImpl.java:62)
>
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:43)
>
> at java.lang.reflect.Method.invoke(Method.java:498)
>
> at
> org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(
> SimpleInstantiationStrategy.java:162)
>
> ... 38 common frames omitted
>
> Caused by: org.springframework.beans.BeanInstantiationException: Failed to
> instantiate [org.apache.camel.cluster.CamelClusterService]: Factory method
> 'kubernetesClusterService' threw exception; nested exception is
> java.lang.IllegalArgumentException: target must be specified
>
> at
> org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(
> SimpleInstantiationStrategy.java:189)
>
> at
> org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(
> ConstructorResolver.java:588)
>
> ... 62 common frames omitted
>
> Caused by: java.lang.IllegalArgumentException: target must be specified
>
> at org.apache.camel.util.ObjectHelper.notNull(ObjectHelper.java:323)
>
> at org.apache.camel.util.IntrospectionSupport.getProperties(
> IntrospectionSupport.java:254)
>
> at org.apache.camel.util.IntrospectionSupport.getNonNullProperties(
> IntrospectionSupport.java:222)
>
> at
> org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceAutoConfiguration.kubernetesClusterService(
> KubernetesClusterServiceAutoConfiguration.java:48)
>
> at
> org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceAutoConfiguration$$EnhancerBySpringCGLIB$$cf38c630.CGLIB$kubernetesClusterService$0(<generated>)
>
> at
> org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceAutoConfiguration$$EnhancerBySpringCGLIB$$cf38c630$$FastClassBySpringCGLIB$$5ef4b2e5.invoke(<generated>)
>
> at org.springframework.cglib.proxy.MethodProxy.invokeSuper(
> MethodProxy.java:228)
>
> at
> org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(
> ConfigurationClassEnhancer.java:358)
>
> at
> org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceAutoConfiguration$$EnhancerBySpringCGLIB$$cf38c630.kubernetesClusterService(<generated>)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>
> at sun.reflect.NativeMethodAccessorImpl.invoke(
> NativeMethodAccessorImpl.java:62)
>
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:43)
>
> at java.lang.reflect.Method.invoke(Method.java:498)
>
> at
> org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(
> SimpleInstantiationStrategy.java:162)
>
> ... 63 common frames omitted



-- 
Zoran Regvart

Reply via email to