Has anyone ever got distributed command bus to work when using spring-cloud-zookeeper as service-discovery? I think there is a bug with latest Axon code (3.3.5).
When I enable distributed command bus and enable fallback over http I get the following exception on start-up:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘distributedCommandBus’ defined in class path resource [org/axonframework/boot/autoconfig/DistributedAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.axonframework.commandhandling.distributed.DistributedCommandBus]: Factory method ‘distributedCommandBus’ threw exception; nested exception is java.lang.UnsupportedOperationException
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:590)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1247)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1096)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:535)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:251)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1135)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1062)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:658)
… 19 common frames omitted
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.axonframework.commandhandling.distributed.DistributedCommandBus]: Factory method ‘distributedCommandBus’ threw exception; nested exception is java.lang.UnsupportedOperationException
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:582)
… 31 common frames omitted
Caused by: java.lang.UnsupportedOperationException: null
at java.util.AbstractMap.put(AbstractMap.java:209)
at org.axonframework.springcloud.commandhandling.SpringCloudCommandRouter.updateMembership(SpringCloudCommandRouter.java:191)
at org.axonframework.springcloud.commandhandling.SpringCloudHttpBackupCommandRouter.updateMembership(SpringCloudHttpBackupCommandRouter.java:207)
at org.axonframework.commandhandling.distributed.DistributedCommandBus.updateLoadFactor(DistributedCommandBus.java:191)
at org.axonframework.boot.autoconfig.DistributedAutoConfiguration.distributedCommandBus(DistributedAutoConfiguration.java:42)
at org.axonframework.boot.autoconfig.DistributedAutoConfiguration$$EnhancerBySpringCGLIB$$ba10958d.CGLIB$distributedCommandBus$0()
at org.axonframework.boot.autoconfig.DistributedAutoConfiguration$$EnhancerBySpringCGLIB$$ba10958d$$FastClassBySpringCGLIB$$723de74a.invoke()
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:361)
at org.axonframework.boot.autoconfig.DistributedAutoConfiguration$$EnhancerBySpringCGLIB$$ba10958d.distributedCommandBus()
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:154)
… 32 common frames omitted
My config looks as follows:
spring:
cloud:
zookeeper:
discovery:
enabled: true
preferIpAddress: true
connect-string: <zookeeper-aws-ip>:2181