Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feign - Apache HttpClient not being used for loadbalanced clients #2550

Closed
thinkd1ff opened this issue Dec 14, 2017 · 12 comments
Closed

Feign - Apache HttpClient not being used for loadbalanced clients #2550

thinkd1ff opened this issue Dec 14, 2017 · 12 comments

Comments

@thinkd1ff
Copy link

thinkd1ff commented Dec 14, 2017

I had import the httpcompent-client 4.5.2 pom.xml and had wirted the LoadBalancer like that:

/**
	 * restTemplate
	 * @param builder
	 * @return
	 */
	@Bean
	@Primary
	@LoadBalanced
    public RestTemplate restTemplate(RestTemplateBuilder builder) {
        RestTemplate restTemplate = builder.build();
        /**加入拦截器**/
                List<ClientHttpRequestInterceptor> list = new ArrayList<ClientHttpRequestInterceptor>();
                list.add(new HeaderInterceptor());
		restTemplate.setInterceptors(list);
                // user the HttpComponentsClientHttpRequestFactory
		HttpComponentsClientHttpRequestFactory requestFactory = new     HttpComponentsClientHttpRequestFactory();
		requestFactory.setConnectTimeout(60000);
		requestFactory.setReadTimeout(60000);

		restTemplate.setRequestFactory(requestFactory);
        return restTemplate;
    }

and i had set the properties feign.httpclient.enabled=true
i used the spring-boot 1.4.1 and spring-cloud Camden.SR7 and import the feign like that:

      <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-feign</artifactId>
        </dependency>
        <dependency>
            <!-- Required to use PATCH -->
            <groupId>com.netflix.feign</groupId>
            <artifactId>feign-httpclient</artifactId>
        </dependency>

the maven dependency like that:
http://rainplus.xyz/assets/images/TIM%E6%88%AA%E5%9B%BE20171214172203.png

however,it throw expection like that:

Caused by: feign.RetryableException: Invalid HTTP method: PATCH executing PATCH http://host/path1/path2
	at feign.FeignException.errorExecuting(FeignException.java:67)
	at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:104)
	at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:76)
	at feign.hystrix.HystrixInvocationHandler$1.run(HystrixInvocationHandler.java:108)
	at com.netflix.hystrix.HystrixCommand$2.call(HystrixCommand.java:301)
	at com.netflix.hystrix.HystrixCommand$2.call(HystrixCommand.java:297)
	at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:46)
	... 26 more
Caused by: java.net.ProtocolException: Invalid HTTP method: PATCH
	at java.net.HttpURLConnection.setRequestMethod(HttpURLConnection.java:428)
	at feign.Client$Default.convertAndSend(Client.java:94)
	at feign.Client$Default.execute(Client.java:73)
	at org.springframework.cloud.netflix.feign.ribbon.FeignLoadBalancer.execute(FeignLoadBalancer.java:81)
	at org.springframework.cloud.netflix.feign.ribbon.FeignLoadBalancer.execute(FeignLoadBalancer.java:49)
	at com.netflix.client.AbstractLoadBalancerAwareClient$1.call(AbstractLoadBalancerAwareClient.java:109)
	at com.netflix.loadbalancer.reactive.LoadBalancerCommand$3$1.call(LoadBalancerCommand.java:303)
	at com.netflix.loadbalancer.reactive.LoadBalancerCommand$3$1.call(LoadBalancerCommand.java:287)
	at rx.internal.util.ScalarSynchronousObservable$3.call(ScalarSynchronousObservable.java:231)
	at rx.internal.util.ScalarSynchronousObservable$3.call(ScalarSynchronousObservable.java:228)
	at rx.Observable.unsafeSubscribe(Observable.java:10211)
	at rx.internal.operators.OnSubscribeConcatMap$ConcatMapSubscriber.drain(OnSubscribeConcatMap.java:286)
	at rx.internal.operators.OnSubscribeConcatMap$ConcatMapSubscriber.onNext(OnSubscribeConcatMap.java:144)
	at com.netflix.loadbalancer.reactive.LoadBalancerCommand$1.call(LoadBalancerCommand.java:185)
	at com.netflix.loadbalancer.reactive.LoadBalancerCommand$1.call(LoadBalancerCommand.java:180)
	at rx.Observable.unsafeSubscribe(Observable.java:10211)
	at rx.internal.operators.OnSubscribeConcatMap.call(OnSubscribeConcatMap.java:94)
	at rx.internal.operators.OnSubscribeConcatMap.call(OnSubscribeConcatMap.java:42)
	at rx.Observable.unsafeSubscribe(Observable.java:10211)
	at rx.internal.operators.OperatorRetryWithPredicate$SourceSubscriber$1.call(OperatorRetryWithPredicate.java:127)
	at rx.internal.schedulers.TrampolineScheduler$InnerCurrentThreadScheduler.enqueue(TrampolineScheduler.java:73)
	at rx.internal.schedulers.TrampolineScheduler$InnerCurrentThreadScheduler.schedule(TrampolineScheduler.java:52)
	at rx.internal.operators.OperatorRetryWithPredicate$SourceSubscriber.onNext(OperatorRetryWithPredicate.java:79)
	at rx.internal.operators.OperatorRetryWithPredicate$SourceSubscriber.onNext(OperatorRetryWithPredicate.java:45)
	at rx.internal.util.ScalarSynchronousObservable$WeakSingleProducer.request(ScalarSynchronousObservable.java:276)
	at rx.Subscriber.setProducer(Subscriber.java:209)
	at rx.internal.util.ScalarSynchronousObservable$JustOnSubscribe.call(ScalarSynchronousObservable.java:138)
	at rx.internal.util.ScalarSynchronousObservable$JustOnSubscribe.call(ScalarSynchronousObservable.java:129)
	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
	at rx.Observable.subscribe(Observable.java:10307)
	at rx.Observable.subscribe(Observable.java:10274)
	at rx.observables.BlockingObservable.blockForSingle(BlockingObservable.java:445)
	at rx.observables.BlockingObservable.single(BlockingObservable.java:342)
	at com.netflix.client.AbstractLoadBalancerAwareClient.executeWithLoadBalancer(AbstractLoadBalancerAwareClient.java:102)
	at org.springframework.cloud.netflix.feign.ribbon.LoadBalancerFeignClient.execute(LoadBalancerFeignClient.java:63)
	at org.springframework.cloud.zookeeper.discovery.dependency.DependencyFeignClientAutoConfiguration$1.execute(DependencyFeignClientAutoConfiguration.java:81)
	at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:97)
	... 31 more
@thinkd1ff
Copy link
Author

i see the issue #2462 and @ryanjbaxter you say use the ribbon would use the jdk httpclient?can i use use the ribbon with the apachehttpclient ? i need the client support the patch request method!

@ryanjbaxter
Copy link
Contributor

We no longer support Camden, please use Dalston.SR4 or Edgware.RELEASE. When using Feign or Ribbon you can use either the Apache HTTP Client (default) or the OK HTTP Client.

@thinkd1ff
Copy link
Author

thinks !

@thinkd1ff thinkd1ff reopened this Dec 19, 2017
@thinkd1ff
Copy link
Author

thinkd1ff commented Dec 19, 2017

@ryanjbaxter I wrote a demo project ,the pom.xml like that:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.example</groupId>
	<artifactId>demo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>demo</name>
	<description>Demo project for Spring Boot</description>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.9.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
        <spring-cloud.version>Edgware.RELEASE</spring-cloud.version>

    </properties>

	<dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
        </dependency>

		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-feign</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>${spring-cloud.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>


</project>

and the properties file like that:

#Zookeeper Server
spring.cloud.zookeeper.connect-string=127.0.0.1

spring.cloud.zookeeper.dependencies.wallet.path=xxx/xxx

the main class like that:

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class DemoApplication {
	@Bean
	RestTemplate restTemplate(RestTemplateBuilder builder) {
		return builder.build();
	}

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}
}

and the feign client like that:

@FeignClient(name="wallet")
public interface IWalletClient {
	@RequestMapping(value = "/walletbase/alterBalanceByUserId", method = RequestMethod.PATCH)
	Object test(@RequestParam("userid") int i, @RequestParam("balance") double d, @RequestParam("balanceCode") String s);
}

but it also throw an Exception:

feign.RetryableException: Invalid HTTP method: PATCH executing PATCH http://192.168.5.179:7807/walletbase/alterBalanceByUserId?userid=24771&balance=8525.19&balanceCode=2525F8F3F72

	at feign.FeignException.errorExecuting(FeignException.java:67)
	at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:104)
	at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:76)
	at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:103)
	at com.sun.proxy.$Proxy84.test(Unknown Source)
	at com.xxx.demo.rest.client.IWalletClientTest.test1(IWalletClientTest.java:21)
	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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
	at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
	at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: java.net.ProtocolException: Invalid HTTP method: PATCH
	at java.net.HttpURLConnection.setRequestMethod(HttpURLConnection.java:440)
	at sun.net.www.protocol.http.HttpURLConnection.setRequestMethod(HttpURLConnection.java:552)
	at feign.Client$Default.convertAndSend(Client.java:94)
	at feign.Client$Default.execute(Client.java:73)
	at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:97)
	... 32 more

you say Apache HTTP Client as default client,but it doesn't....what wrong with me ?

@ryanjbaxter
Copy link
Contributor

It would be better if you provided an actual project with the source code rather than paste it in the issue. Do you see the Apache HTTP Client jar on your classpath?

<dependency>
  <groupId>org.apache.httpcomponents</groupId>
  <artifactId>httpclient</artifactId>
  <version>...</version>
</dependency>

@thinkd1ff
Copy link
Author

I had add the above denpendency as version 4.5.2,but it desn't work again,and I debug it,it ouput the auto-configuration report as:

=========================
AUTO-CONFIGURATION REPORT
=========================


Positive matches:
-----------------

   ArchaiusAutoConfiguration matched:
      - @ConditionalOnClass found required classes 'com.netflix.config.ConcurrentCompositeConfiguration', 'org.apache.commons.configuration.ConfigurationBuilder'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   ArchaiusAutoConfiguration.PropagateEventsConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.cloud.context.environment.EnvironmentChangeEvent'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - @ConditionalOnProperty (archaius.propagate.environmentChangedEvent) matched (OnPropertyCondition)

   AsyncLoadBalancerAutoConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.web.client.AsyncRestTemplate'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   AsyncLoadBalancerAutoConfiguration.AsyncRestTemplateCustomizerConfig matched:
      - @ConditionalOnBean (types: org.springframework.cloud.client.loadbalancer.AsyncRestTemplateCustomizer; SearchStrategy: all) found bean 'asyncRestTemplateCustomizer' (OnBeanCondition)

   AsyncLoadBalancerAutoConfiguration.LoadBalancerInterceptorConfig matched:
      - @ConditionalOnBean (types: org.springframework.cloud.client.loadbalancer.LoadBalancerClient; SearchStrategy: all) found bean 'loadBalancerClient' (OnBeanCondition)

   AutoServiceRegistrationAutoConfiguration matched:
      - @ConditionalOnProperty (spring.cloud.service-registry.auto-registration.enabled) matched (OnPropertyCondition)

   AutoServiceRegistrationConfiguration matched:
      - @ConditionalOnProperty (spring.cloud.service-registry.auto-registration.enabled) matched (OnPropertyCondition)

   ConfigurationPropertiesRebinderAutoConfiguration matched:
      - @ConditionalOnBean (types: org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor; SearchStrategy: all) found bean 'org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor' (OnBeanCondition)

   ConfigurationPropertiesRebinderAutoConfiguration#configurationPropertiesBeans matched:
      - @ConditionalOnMissingBean (types: org.springframework.cloud.context.properties.ConfigurationPropertiesBeans; SearchStrategy: current) did not find any beans (OnBeanCondition)

   ConfigurationPropertiesRebinderAutoConfiguration#configurationPropertiesRebinder matched:
      - @ConditionalOnMissingBean (types: org.springframework.cloud.context.properties.ConfigurationPropertiesRebinder; SearchStrategy: current) did not find any beans (OnBeanCondition)

   CuratorServiceDiscoveryAutoConfiguration matched:
      - @ConditionalOnProperty (spring.cloud.zookeeper.enabled) matched; @ConditionalOnProperty (spring.cloud.zookeeper.discovery.enabled) matched (OnPropertyCondition)

   CuratorServiceDiscoveryAutoConfiguration#defaultServiceDiscoveryCustomizer matched:
      - @ConditionalOnMissingBean (types: org.springframework.cloud.zookeeper.support.ServiceDiscoveryCustomizer; SearchStrategy: all) did not find any beans (OnBeanCondition)

   CuratorServiceDiscoveryAutoConfiguration#deprecatedInstanceSerializer matched:
      - @ConditionalOnMissingBean (types: org.apache.curator.x.discovery.details.InstanceSerializer; SearchStrategy: all) did not find any beans (OnBeanCondition)

   CuratorServiceDiscoveryAutoConfiguration.CuratorServiceDiscoveryConfiguration matched:
      - @ConditionalOnMissingBean (types: org.springframework.cloud.zookeeper.discovery.ZookeeperServiceDiscovery; SearchStrategy: all) did not find any beans (OnBeanCondition)

   CuratorServiceDiscoveryAutoConfiguration.CuratorServiceDiscoveryConfiguration#curatorServiceDiscovery matched:
      - @ConditionalOnMissingBean (types: org.apache.curator.x.discovery.ServiceDiscovery; SearchStrategy: all) did not find any beans (OnBeanCondition)

   DefaultFeignLoadBalancedConfiguration#feignClient matched:
      - @ConditionalOnMissingBean (types: feign.Client; SearchStrategy: all) did not find any beans (OnBeanCondition)

   DependencyFeignClientAutoConfiguration matched:
      - @ConditionalOnClass found required classes 'feign.Client', 'org.springframework.cloud.netflix.feign.ribbon.LoadBalancerFeignClient'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - @ConditionalOnProperty (spring.cloud.zookeeper.dependency.headers.enabled) matched; @ConditionalOnProperty (spring.cloud.zookeeper.enabled) matched (OnPropertyCondition)
      - Dependencies are defined in configuration (DependenciesPassedCondition)

   DependencyRestTemplateAutoConfiguration matched:
      - @ConditionalOnProperty (spring.cloud.zookeeper.dependency.resttemplate.enabled) matched; @ConditionalOnProperty (spring.cloud.zookeeper.enabled) matched; @ConditionalOnProperty (ribbon.zookeeper.enabled) matched (OnPropertyCondition)
      - Dependencies are defined in configuration (DependenciesPassedCondition)

   DependencyRibbonAutoConfiguration matched:
      - @ConditionalOnProperty (spring.cloud.zookeeper.enabled) matched; @ConditionalOnProperty (ribbon.zookeeper.enabled) matched (OnPropertyCondition)
      - Dependencies are defined in configuration (DependenciesPassedCondition)

   DependencyRibbonAutoConfiguration#loadBalancerClient matched:
      - @ConditionalOnProperty (spring.cloud.zookeeper.dependency.ribbon.enabled) matched (OnPropertyCondition)
      - @ConditionalOnMissingBean (types: org.springframework.cloud.client.loadbalancer.LoadBalancerClient; SearchStrategy: all) did not find any beans (OnBeanCondition)

   DependencyWatcherAutoConfiguration matched:
      - @ConditionalOnProperty (spring.cloud.zookeeper.enabled) matched (OnPropertyCondition)
      - Dependencies are defined in configuration (DependenciesPassedCondition)

   DependencyWatcherAutoConfiguration#dependencyPresenceOnStartupVerifier matched:
      - @ConditionalOnMissingBean (types: org.springframework.cloud.zookeeper.discovery.watcher.presence.DependencyPresenceOnStartupVerifier; SearchStrategy: all) did not find any beans (OnBeanCondition)

   DependencyWatcherAutoConfiguration#dependencyWatcherDeprecated matched:
      - @ConditionalOnBean (types: org.springframework.cloud.zookeeper.discovery.ZookeeperServiceDiscovery; SearchStrategy: all) found bean 'zookeeperServiceDiscovery'; @ConditionalOnMissingBean (types: org.springframework.cloud.zookeeper.discovery.watcher.DependencyRegistrationHookProvider; SearchStrategy: all) did not find any beans (OnBeanCondition)

   DispatcherServletAutoConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.web.servlet.DispatcherServlet'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - @ConditionalOnWebApplication (required) found 'session' scope (OnWebApplicationCondition)

   DispatcherServletAutoConfiguration.DispatcherServletConfiguration matched:
      - @ConditionalOnClass found required class 'javax.servlet.ServletRegistration'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - Default DispatcherServlet did not find dispatcher servlet beans (DispatcherServletAutoConfiguration.DefaultDispatcherServletCondition)

   DispatcherServletAutoConfiguration.DispatcherServletRegistrationConfiguration matched:
      - @ConditionalOnClass found required class 'javax.servlet.ServletRegistration'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - DispatcherServlet Registration did not find servlet registration bean (DispatcherServletAutoConfiguration.DispatcherServletRegistrationCondition)

   DispatcherServletAutoConfiguration.DispatcherServletRegistrationConfiguration#dispatcherServletRegistration matched:
      - @ConditionalOnBean (names: dispatcherServlet; types: org.springframework.web.servlet.DispatcherServlet; SearchStrategy: all) found beans 'dispatcherServlet', 'dispatcherServlet' (OnBeanCondition)

   EmbeddedServletContainerAutoConfiguration matched:
      - @ConditionalOnWebApplication (required) found 'session' scope (OnWebApplicationCondition)

   EmbeddedServletContainerAutoConfiguration.EmbeddedTomcat matched:
      - @ConditionalOnClass found required classes 'javax.servlet.Servlet', 'org.apache.catalina.startup.Tomcat'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - @ConditionalOnMissingBean (types: org.springframework.boot.context.embedded.EmbeddedServletContainerFactory; SearchStrategy: current) did not find any beans (OnBeanCondition)

   ErrorMvcAutoConfiguration matched:
      - @ConditionalOnClass found required classes 'javax.servlet.Servlet', 'org.springframework.web.servlet.DispatcherServlet'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - @ConditionalOnWebApplication (required) found 'session' scope (OnWebApplicationCondition)

   ErrorMvcAutoConfiguration#basicErrorController matched:
      - @ConditionalOnMissingBean (types: org.springframework.boot.autoconfigure.web.ErrorController; SearchStrategy: current) did not find any beans (OnBeanCondition)

   ErrorMvcAutoConfiguration#errorAttributes matched:
      - @ConditionalOnMissingBean (types: org.springframework.boot.autoconfigure.web.ErrorAttributes; SearchStrategy: current) did not find any beans (OnBeanCondition)

   ErrorMvcAutoConfiguration.DefaultErrorViewResolverConfiguration#conventionErrorViewResolver matched:
      - @ConditionalOnBean (types: org.springframework.web.servlet.DispatcherServlet; SearchStrategy: all) found bean 'dispatcherServlet'; @ConditionalOnMissingBean (types: org.springframework.boot.autoconfigure.web.DefaultErrorViewResolver; SearchStrategy: all) did not find any beans (OnBeanCondition)

   ErrorMvcAutoConfiguration.WhitelabelErrorViewConfiguration matched:
      - @ConditionalOnProperty (server.error.whitelabel.enabled) matched (OnPropertyCondition)
      - ErrorTemplate Missing did not find error template view (ErrorMvcAutoConfiguration.ErrorTemplateMissingCondition)

   ErrorMvcAutoConfiguration.WhitelabelErrorViewConfiguration#beanNameViewResolver matched:
      - @ConditionalOnMissingBean (types: org.springframework.web.servlet.view.BeanNameViewResolver; SearchStrategy: all) did not find any beans (OnBeanCondition)

   ErrorMvcAutoConfiguration.WhitelabelErrorViewConfiguration#defaultErrorView matched:
      - @ConditionalOnMissingBean (names: error; SearchStrategy: all) did not find any beans (OnBeanCondition)

   FeignAutoConfiguration matched:
      - @ConditionalOnClass found required class 'feign.Feign'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   FeignAutoConfiguration.HystrixFeignTargeterConfiguration matched:
      - @ConditionalOnClass found required class 'feign.hystrix.HystrixFeign'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   FeignAutoConfiguration.HystrixFeignTargeterConfiguration#feignTargeter matched:
      - @ConditionalOnMissingBean (types: org.springframework.cloud.netflix.feign.Targeter; SearchStrategy: all) did not find any beans (OnBeanCondition)

   FeignRibbonClientAutoConfiguration matched:
      - @ConditionalOnClass found required classes 'com.netflix.loadbalancer.ILoadBalancer', 'feign.Feign'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   FeignRibbonClientAutoConfiguration#cachingLBClientFactory matched:
      - @ConditionalOnClass found required class; @ConditionalOnMissingClass did not find unwanted class 'org.springframework.retry.support.RetryTemplate' (OnClassCondition)

   FeignRibbonClientAutoConfiguration#feignRequestOptions matched:
      - @ConditionalOnMissingBean (types: feign.Request$Options; SearchStrategy: all) did not find any beans (OnBeanCondition)

   GenericCacheConfiguration matched:
      - Cache org.springframework.boot.autoconfigure.cache.GenericCacheConfiguration automatic cache type (CacheCondition)

   HttpClientConfiguration.ApacheHttpClientConfiguration matched:
      - @ConditionalOnProperty (spring.cloud.httpclientfactories.apache.enabled) matched (OnPropertyCondition)

   HttpClientConfiguration.ApacheHttpClientConfiguration#apacheHttpClientFactory matched:
      - @ConditionalOnMissingBean (types: org.springframework.cloud.commons.httpclient.ApacheHttpClientFactory; SearchStrategy: all) did not find any beans (OnBeanCondition)

   HttpClientConfiguration.ApacheHttpClientConfiguration#connManFactory matched:
      - @ConditionalOnMissingBean (types: org.springframework.cloud.commons.httpclient.ApacheHttpClientConnectionManagerFactory; SearchStrategy: all) did not find any beans (OnBeanCondition)

   HttpEncodingAutoConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.web.filter.CharacterEncodingFilter'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - @ConditionalOnWebApplication (required) found 'session' scope (OnWebApplicationCondition)
      - @ConditionalOnProperty (spring.http.encoding.enabled) matched (OnPropertyCondition)

   HttpEncodingAutoConfiguration#characterEncodingFilter matched:
      - @ConditionalOnMissingBean (types: org.springframework.web.filter.CharacterEncodingFilter; SearchStrategy: all) did not find any beans (OnBeanCondition)

   HttpMessageConvertersAutoConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.http.converter.HttpMessageConverter'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   HttpMessageConvertersAutoConfiguration#messageConverters matched:
      - @ConditionalOnMissingBean (types: org.springframework.boot.autoconfigure.web.HttpMessageConverters; SearchStrategy: all) did not find any beans (OnBeanCondition)

   HttpMessageConvertersAutoConfiguration.StringHttpMessageConverterConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.http.converter.StringHttpMessageConverter'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   HttpMessageConvertersAutoConfiguration.StringHttpMessageConverterConfiguration#stringHttpMessageConverter matched:
      - @ConditionalOnMissingBean (types: org.springframework.http.converter.StringHttpMessageConverter; SearchStrategy: all) did not find any beans (OnBeanCondition)

   JacksonAutoConfiguration matched:
      - @ConditionalOnClass found required class 'com.fasterxml.jackson.databind.ObjectMapper'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   JacksonAutoConfiguration.Jackson2ObjectMapperBuilderCustomizerConfiguration matched:
      - @ConditionalOnClass found required classes 'com.fasterxml.jackson.databind.ObjectMapper', 'org.springframework.http.converter.json.Jackson2ObjectMapperBuilder'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   JacksonAutoConfiguration.JacksonObjectMapperBuilderConfiguration matched:
      - @ConditionalOnClass found required classes 'com.fasterxml.jackson.databind.ObjectMapper', 'org.springframework.http.converter.json.Jackson2ObjectMapperBuilder'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   JacksonAutoConfiguration.JacksonObjectMapperBuilderConfiguration#jacksonObjectMapperBuilder matched:
      - @ConditionalOnMissingBean (types: org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; SearchStrategy: all) did not find any beans (OnBeanCondition)

   JacksonAutoConfiguration.JacksonObjectMapperConfiguration matched:
      - @ConditionalOnClass found required classes 'com.fasterxml.jackson.databind.ObjectMapper', 'org.springframework.http.converter.json.Jackson2ObjectMapperBuilder'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   JacksonAutoConfiguration.JacksonObjectMapperConfiguration#jacksonObjectMapper matched:
      - @ConditionalOnMissingBean (types: com.fasterxml.jackson.databind.ObjectMapper; SearchStrategy: all) did not find any beans (OnBeanCondition)

   JacksonHttpMessageConvertersConfiguration.MappingJackson2HttpMessageConverterConfiguration matched:
      - @ConditionalOnClass found required class 'com.fasterxml.jackson.databind.ObjectMapper'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - @ConditionalOnProperty (spring.http.converters.preferred-json-mapper=jackson) matched (OnPropertyCondition)
      - @ConditionalOnBean (types: com.fasterxml.jackson.databind.ObjectMapper; SearchStrategy: all) found bean 'jacksonObjectMapper' (OnBeanCondition)

   JacksonHttpMessageConvertersConfiguration.MappingJackson2HttpMessageConverterConfiguration#mappingJackson2HttpMessageConverter matched:
      - @ConditionalOnMissingBean (types: org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; SearchStrategy: all) did not find any beans (OnBeanCondition)

   LoadBalancerAutoConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.web.client.RestTemplate'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - @ConditionalOnBean (types: org.springframework.cloud.client.loadbalancer.LoadBalancerClient; SearchStrategy: all) found bean 'loadBalancerClient' (OnBeanCondition)

   LoadBalancerAutoConfiguration#loadBalancerRequestFactory matched:
      - @ConditionalOnMissingBean (types: org.springframework.cloud.client.loadbalancer.LoadBalancerRequestFactory; SearchStrategy: all) did not find any beans (OnBeanCondition)

   LoadBalancerAutoConfiguration.LoadBalancerInterceptorConfig matched:
      - @ConditionalOnClass found required class; @ConditionalOnMissingClass did not find unwanted class 'org.springframework.retry.support.RetryTemplate' (OnClassCondition)

   LoadBalancerAutoConfiguration.LoadBalancerInterceptorConfig#restTemplateCustomizer matched:
      - @ConditionalOnMissingBean (types: org.springframework.cloud.client.loadbalancer.RestTemplateCustomizer; SearchStrategy: all) did not find any beans (OnBeanCondition)

   MultipartAutoConfiguration matched:
      - @ConditionalOnClass found required classes 'javax.servlet.Servlet', 'org.springframework.web.multipart.support.StandardServletMultipartResolver', 'javax.servlet.MultipartConfigElement'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - @ConditionalOnProperty (spring.http.multipart.enabled) matched (OnPropertyCondition)

   MultipartAutoConfiguration#multipartConfigElement matched:
      - @ConditionalOnMissingBean (types: javax.servlet.MultipartConfigElement; SearchStrategy: all) did not find any beans (OnBeanCondition)

   MultipartAutoConfiguration#multipartResolver matched:
      - @ConditionalOnMissingBean (types: org.springframework.web.multipart.MultipartResolver; SearchStrategy: all) did not find any beans (OnBeanCondition)

   NoOpCacheConfiguration matched:
      - Cache org.springframework.boot.autoconfigure.cache.NoOpCacheConfiguration automatic cache type (CacheCondition)

   PropertyPlaceholderAutoConfiguration#propertySourcesPlaceholderConfigurer matched:
      - @ConditionalOnMissingBean (types: org.springframework.context.support.PropertySourcesPlaceholderConfigurer; SearchStrategy: current) did not find any beans (OnBeanCondition)

   RedisCacheConfiguration matched:
      - Cache org.springframework.boot.autoconfigure.cache.RedisCacheConfiguration automatic cache type (CacheCondition)

   RefreshAutoConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.cloud.context.scope.refresh.RefreshScope'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   RefreshAutoConfiguration#contextRefresher matched:
      - @ConditionalOnMissingBean (types: org.springframework.cloud.context.refresh.ContextRefresher; SearchStrategy: all) did not find any beans (OnBeanCondition)

   RefreshAutoConfiguration#environmentManager matched:
      - @ConditionalOnMissingBean (types: org.springframework.cloud.context.environment.EnvironmentManager; SearchStrategy: all) did not find any beans (OnBeanCondition)

   RefreshAutoConfiguration#loggingRebinder matched:
      - @ConditionalOnMissingBean (types: org.springframework.cloud.logging.LoggingRebinder; SearchStrategy: all) did not find any beans (OnBeanCondition)

   RefreshAutoConfiguration.RefreshScopeConfiguration matched:
      - @ConditionalOnMissingBean (types: org.springframework.cloud.context.scope.refresh.RefreshScope; SearchStrategy: all) did not find any beans (OnBeanCondition)

   RibbonAutoConfiguration matched:
      - @ConditionalOnClass found required classes 'com.netflix.client.IClient', 'org.springframework.web.client.RestTemplate', 'org.springframework.web.client.AsyncRestTemplate', 'com.netflix.ribbon.Ribbon'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   RibbonAutoConfiguration#neverRetryPolicyFactory matched:
      - @ConditionalOnClass found required class; @ConditionalOnMissingClass did not find unwanted class 'org.springframework.retry.support.RetryTemplate' (OnClassCondition)
      - @ConditionalOnMissingBean (types: org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFactory; SearchStrategy: all) did not find any beans (OnBeanCondition)

   RibbonAutoConfiguration#propertiesFactory matched:
      - @ConditionalOnMissingBean (types: org.springframework.cloud.netflix.ribbon.PropertiesFactory; SearchStrategy: all) did not find any beans (OnBeanCondition)

   RibbonCommandFactoryConfiguration.HttpClientRibbonConfiguration matched:
      - AnyNestedCondition 1 matched 0 did not; NestedCondition on RibbonCommandFactoryConfiguration.OnRibbonHttpClientCondition.RibbonProperty @ConditionalOnProperty (ribbon.httpclient.enabled) matched (RibbonCommandFactoryConfiguration.OnRibbonHttpClientCondition)

   RibbonZookeeperAutoConfiguration matched:
      - @ConditionalOnProperty (spring.cloud.zookeeper.enabled) matched; @ConditionalOnProperty (ribbon.zookeeper.enabled) matched (OnPropertyCondition)
      - @ConditionalOnBean (types: org.springframework.cloud.netflix.ribbon.SpringClientFactory; SearchStrategy: all) found bean 'springClientFactory' (OnBeanCondition)

   RxJavaAutoConfiguration matched:
      - @ConditionalOnClass found required class 'rx.Observable'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - @ConditionalOnWebApplication (required) found 'session' scope (OnWebApplicationCondition)

   RxJavaAutoConfiguration.RxJavaReturnValueHandlerConfig matched:
      - @ConditionalOnClass found required classes 'org.springframework.web.method.support.AsyncHandlerMethodReturnValueHandler', 'org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   ServerPropertiesAutoConfiguration matched:
      - @ConditionalOnWebApplication (required) found 'session' scope (OnWebApplicationCondition)

   ServerPropertiesAutoConfiguration#serverProperties matched:
      - @ConditionalOnMissingBean (types: org.springframework.boot.autoconfigure.web.ServerProperties; SearchStrategy: current) did not find any beans (OnBeanCondition)

   SimpleCacheConfiguration matched:
      - Cache org.springframework.boot.autoconfigure.cache.SimpleCacheConfiguration automatic cache type (CacheCondition)

   UtilAutoConfiguration matched:
      - @ConditionalOnProperty (spring.cloud.util.enabled) matched (OnPropertyCondition)

   UtilAutoConfiguration#inetUtils matched:
      - @ConditionalOnMissingBean (types: org.springframework.cloud.commons.util.InetUtils; SearchStrategy: all) did not find any beans (OnBeanCondition)

   ValidationAutoConfiguration matched:
      - @ConditionalOnClass found required class 'javax.validation.executable.ExecutableValidator'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - @ConditionalOnResource found location classpath:META-INF/services/javax.validation.spi.ValidationProvider (OnResourceCondition)

   ValidationAutoConfiguration#defaultValidator matched:
      - @ConditionalOnMissingBean (types: javax.validation.Validator; SearchStrategy: all) did not find any beans (OnBeanCondition)

   ValidationAutoConfiguration#methodValidationPostProcessor matched:
      - @ConditionalOnMissingBean (types: org.springframework.validation.beanvalidation.MethodValidationPostProcessor; SearchStrategy: all) did not find any beans (OnBeanCondition)

   WebClientAutoConfiguration.RestTemplateConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.web.client.RestTemplate'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   WebClientAutoConfiguration.RestTemplateConfiguration#restTemplateBuilder matched:
      - @ConditionalOnMissingBean (types: org.springframework.boot.web.client.RestTemplateBuilder; SearchStrategy: all) did not find any beans (OnBeanCondition)

   WebMvcAutoConfiguration matched:
      - @ConditionalOnClass found required classes 'javax.servlet.Servlet', 'org.springframework.web.servlet.DispatcherServlet', 'org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - @ConditionalOnWebApplication (required) found 'session' scope (OnWebApplicationCondition)
      - @ConditionalOnMissingBean (types: org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; SearchStrategy: all) did not find any beans (OnBeanCondition)

   WebMvcAutoConfiguration#hiddenHttpMethodFilter matched:
      - @ConditionalOnMissingBean (types: org.springframework.web.filter.HiddenHttpMethodFilter; SearchStrategy: all) did not find any beans (OnBeanCondition)

   WebMvcAutoConfiguration#httpPutFormContentFilter matched:
      - @ConditionalOnProperty (spring.mvc.formcontent.putfilter.enabled) matched (OnPropertyCondition)
      - @ConditionalOnMissingBean (types: org.springframework.web.filter.HttpPutFormContentFilter; SearchStrategy: all) did not find any beans (OnBeanCondition)

   WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter#defaultViewResolver matched:
      - @ConditionalOnMissingBean (types: org.springframework.web.servlet.view.InternalResourceViewResolver; SearchStrategy: all) did not find any beans (OnBeanCondition)

   WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter#requestContextFilter matched:
      - @ConditionalOnMissingBean (types: org.springframework.web.context.request.RequestContextListener,org.springframework.web.filter.RequestContextFilter; SearchStrategy: all) did not find any beans (OnBeanCondition)

   WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter#viewResolver matched:
      - @ConditionalOnBean (types: org.springframework.web.servlet.ViewResolver; SearchStrategy: all) found beans 'beanNameViewResolver', 'defaultViewResolver', 'mvcViewResolver'; @ConditionalOnMissingBean (names: viewResolver; types: org.springframework.web.servlet.view.ContentNegotiatingViewResolver; SearchStrategy: all) did not find any beans (OnBeanCondition)

   WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter.FaviconConfiguration matched:
      - @ConditionalOnProperty (spring.mvc.favicon.enabled) matched (OnPropertyCondition)

   WebSocketAutoConfiguration matched:
      - @ConditionalOnClass found required classes 'javax.servlet.Servlet', 'javax.websocket.server.ServerContainer'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - @ConditionalOnWebApplication (required) found 'session' scope (OnWebApplicationCondition)

   WebSocketAutoConfiguration.TomcatWebSocketConfiguration matched:
      - @ConditionalOnClass found required classes 'org.apache.catalina.startup.Tomcat', 'org.apache.tomcat.websocket.server.WsSci'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   WebSocketAutoConfiguration.TomcatWebSocketConfiguration#websocketContainerCustomizer matched:
      - @ConditionalOnJava (1.7 or newer) found 1.8 (OnJavaCondition)
      - @ConditionalOnMissingBean (names: websocketContainerCustomizer; SearchStrategy: all) did not find any beans (OnBeanCondition)

   ZookeeperAutoConfiguration matched:
      - @ConditionalOnProperty (spring.cloud.zookeeper.enabled) matched (OnPropertyCondition)

   ZookeeperAutoConfiguration#curatorFramework matched:
      - @ConditionalOnMissingBean (types: org.apache.curator.framework.CuratorFramework; SearchStrategy: all) did not find any beans (OnBeanCondition)

   ZookeeperAutoConfiguration#exponentialBackoffRetry matched:
      - @ConditionalOnMissingBean (types: org.apache.curator.RetryPolicy; SearchStrategy: all) did not find any beans (OnBeanCondition)

   ZookeeperAutoConfiguration#zookeeperProperties matched:
      - @ConditionalOnMissingBean (types: org.springframework.cloud.zookeeper.ZookeeperProperties; SearchStrategy: all) did not find any beans (OnBeanCondition)

   ZookeeperAutoServiceRegistrationAutoConfiguration matched:
      - @ConditionalOnProperty (spring.cloud.service-registry.auto-registration.enabled) matched; @ConditionalOnProperty (spring.cloud.zookeeper.enabled) matched; @ConditionalOnProperty (spring.cloud.zookeeper.discovery.enabled) matched (OnPropertyCondition)
      - @ConditionalOnMissingBean (types: org.springframework.cloud.zookeeper.discovery.ZookeeperLifecycle; SearchStrategy: all) did not find any beans (OnBeanCondition)

   ZookeeperAutoServiceRegistrationAutoConfiguration#zookeeperServiceDiscovery matched:
      - @ConditionalOnMissingBean (types: org.springframework.cloud.zookeeper.discovery.ZookeeperServiceDiscovery; SearchStrategy: all) did not find any beans (OnBeanCondition)

   ZookeeperDependenciesAutoConfiguration matched:
      - @ConditionalOnProperty (spring.cloud.zookeeper.enabled) matched (OnPropertyCondition)
      - Dependencies are defined in configuration (DependenciesPassedCondition)

   ZookeeperDependenciesAutoConfiguration#zookeeperDependencies matched:
      - @ConditionalOnMissingBean (types: org.springframework.cloud.zookeeper.discovery.dependency.ZookeeperDependencies; SearchStrategy: all) did not find any beans (OnBeanCondition)

   ZookeeperDiscoveryAutoConfiguration matched:
      - @ConditionalOnProperty (spring.cloud.zookeeper.enabled) matched; @ConditionalOnProperty (spring.cloud.zookeeper.discovery.enabled) matched (OnPropertyCondition)
      - @ConditionalOnBean (types: org.springframework.cloud.zookeeper.discovery.ZookeeperDiscoveryClientConfiguration$Marker; SearchStrategy: all) found bean 'zookeeperDiscoveryClientMarker' (OnBeanCondition)

   ZookeeperDiscoveryAutoConfiguration#zookeeperDiscoveryClientDeprecated matched:
      - @ConditionalOnBean (types: org.springframework.cloud.zookeeper.discovery.ZookeeperServiceDiscovery; SearchStrategy: all) found bean 'zookeeperServiceDiscovery' (OnBeanCondition)

   ZookeeperDiscoveryClientConfiguration matched:
      - @ConditionalOnProperty (spring.cloud.zookeeper.discovery.enabled) matched (OnPropertyCondition)

   ZookeeperServiceRegistryAutoConfiguration matched:
      - @ConditionalOnProperty (spring.cloud.service-registry.enabled) matched; @ConditionalOnProperty (spring.cloud.zookeeper.enabled) matched; @ConditionalOnProperty (spring.cloud.zookeeper.discovery.enabled) matched (OnPropertyCondition)

   ZookeeperServiceRegistryAutoConfiguration#zookeeperDiscoveryProperties matched:
      - @ConditionalOnMissingBean (types: org.springframework.cloud.zookeeper.discovery.ZookeeperDiscoveryProperties; SearchStrategy: all) did not find any beans (OnBeanCondition)


Negative matches:
-----------------

   ActiveMQAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'javax.jms.ConnectionFactory', 'org.apache.activemq.ActiveMQConnectionFactory' (OnClassCondition)

   AopAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.aspectj.lang.annotation.Aspect', 'org.aspectj.lang.reflect.Advice' (OnClassCondition)

   ArchaiusAutoConfiguration.ArchaiusEndpointConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.boot.actuate.endpoint.Endpoint' (OnClassCondition)

   ArtemisAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'javax.jms.ConnectionFactory', 'org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory' (OnClassCondition)

   BatchAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.springframework.batch.core.launch.JobLauncher', 'org.springframework.jdbc.core.JdbcOperations' (OnClassCondition)

   CacheAutoConfiguration:
      Did not match:
         - @ConditionalOnBean (types: org.springframework.cache.interceptor.CacheAspectSupport; SearchStrategy: all) did not find any beans (OnBeanCondition)
      Matched:
         - @ConditionalOnClass found required class 'org.springframework.cache.CacheManager'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   CacheAutoConfiguration.CacheManagerJpaDependencyConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean' (OnClassCondition)
         - Ancestor org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration did not match (ConditionEvaluationReport.AncestorsMatchedCondition)

   CaffeineCacheConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.github.benmanes.caffeine.cache.Caffeine', 'org.springframework.cache.caffeine.CaffeineCacheManager' (OnClassCondition)

   CassandraAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'com.datastax.driver.core.Cluster' (OnClassCondition)

   CassandraDataAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.datastax.driver.core.Cluster', 'org.springframework.data.cassandra.core.CassandraAdminOperations' (OnClassCondition)

   CassandraRepositoriesAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.datastax.driver.core.Session', 'org.springframework.data.cassandra.repository.CassandraRepository' (OnClassCondition)

   CloudAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.cloud.config.java.CloudScanConfiguration' (OnClassCondition)

   CloudHypermediaAutoConfiguration:
      Did not match:
         - @ConditionalOnBean (types: org.springframework.cloud.client.hypermedia.RemoteResource; SearchStrategy: all) did not find any beans (OnBeanCondition)

   CommonsClientAutoConfiguration.ActuatorConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.boot.actuate.endpoint.Endpoint' (OnClassCondition)

   CommonsClientAutoConfiguration.DiscoveryLoadBalancerConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.boot.actuate.health.HealthIndicator' (OnClassCondition)

   CouchbaseAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.couchbase.client.java.CouchbaseBucket', 'com.couchbase.client.java.Cluster' (OnClassCondition)

   CouchbaseCacheConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.couchbase.client.java.Bucket', 'com.couchbase.client.spring.cache.CouchbaseCacheManager' (OnClassCondition)

   CouchbaseDataAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.couchbase.client.java.Bucket', 'org.springframework.data.couchbase.repository.CouchbaseRepository' (OnClassCondition)

   CouchbaseRepositoriesAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.couchbase.client.java.Bucket', 'org.springframework.data.couchbase.repository.CouchbaseRepository' (OnClassCondition)

   DataSourceAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType' (OnClassCondition)

   DataSourceTransactionManagerAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.springframework.jdbc.core.JdbcTemplate', 'org.springframework.transaction.PlatformTransactionManager' (OnClassCondition)

   DependencyWatcherAutoConfiguration#dependencyWatcher:
      Did not match:
         - @ConditionalOnMissingBean (types: org.springframework.cloud.zookeeper.discovery.watcher.DependencyRegistrationHookProvider,org.springframework.cloud.zookeeper.discovery.ZookeeperServiceDiscovery; SearchStrategy: all) found beans 'dependencyWatcherDeprecated', 'zookeeperServiceDiscovery' (OnBeanCondition)

   DeviceDelegatingViewResolverAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.mobile.device.view.LiteDeviceDelegatingViewResolver' (OnClassCondition)

   DeviceResolverAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.springframework.mobile.device.DeviceResolverHandlerInterceptor', 'org.springframework.mobile.device.DeviceHandlerMethodArgumentResolver' (OnClassCondition)

   DispatcherServletAutoConfiguration.DispatcherServletConfiguration#multipartResolver:
      Did not match:
         - @ConditionalOnBean (types: org.springframework.web.multipart.MultipartResolver; SearchStrategy: all) did not find any beans (OnBeanCondition)

   EhCacheCacheConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'net.sf.ehcache.Cache', 'org.springframework.cache.ehcache.EhCacheCacheManager' (OnClassCondition)

   ElasticsearchAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.elasticsearch.client.Client', 'org.springframework.data.elasticsearch.client.TransportClientFactoryBean', 'org.springframework.data.elasticsearch.client.NodeClientFactoryBean' (OnClassCondition)

   ElasticsearchDataAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.elasticsearch.client.Client', 'org.springframework.data.elasticsearch.core.ElasticsearchTemplate' (OnClassCondition)

   ElasticsearchRepositoriesAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.elasticsearch.client.Client', 'org.springframework.data.elasticsearch.repository.ElasticsearchRepository' (OnClassCondition)

   EmbeddedLdapAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'com.unboundid.ldap.listener.InMemoryDirectoryServer' (OnClassCondition)

   EmbeddedMongoAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.mongodb.Mongo', 'de.flapdoodle.embed.mongo.MongodStarter' (OnClassCondition)

   EmbeddedServletContainerAutoConfiguration.EmbeddedJetty:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.eclipse.jetty.server.Server', 'org.eclipse.jetty.util.Loader', 'org.eclipse.jetty.webapp.WebAppContext' (OnClassCondition)

   EmbeddedServletContainerAutoConfiguration.EmbeddedUndertow:
      Did not match:
         - @ConditionalOnClass did not find required classes 'io.undertow.Undertow', 'org.xnio.SslClientAuthMode' (OnClassCondition)

   FacebookAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.springframework.social.config.annotation.SocialConfigurerAdapter', 'org.springframework.social.facebook.connect.FacebookConnectionFactory' (OnClassCondition)

   FallbackWebSecurityAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.security.config.annotation.web.configuration.EnableWebSecurity' (OnClassCondition)

   FeignAcceptGzipEncodingAutoConfiguration:
      Did not match:
         - @ConditionalOnProperty (feign.compression.response.enabled) did not find property 'feign.compression.response.enabled' (OnPropertyCondition)
      Matched:
         - @ConditionalOnClass found required class 'feign.Feign'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   FeignAutoConfiguration.DefaultFeignTargeterConfiguration:
      Did not match:
         - @ConditionalOnMissingClass found unwanted class 'feign.hystrix.HystrixFeign' (OnClassCondition)

   FeignAutoConfiguration.HttpClientFeignConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'feign.httpclient.ApacheHttpClient' (OnClassCondition)

   FeignAutoConfiguration.OkHttpFeignConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'feign.okhttp.OkHttpClient' (OnClassCondition)

   FeignContentGzipEncodingAutoConfiguration:
      Did not match:
         - @ConditionalOnProperty (feign.compression.request.enabled) did not find property 'feign.compression.request.enabled' (OnPropertyCondition)
      Matched:
         - @ConditionalOnClass found required class 'feign.Feign'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   FeignRibbonClientAutoConfiguration#retryabeCachingLBClientFactory:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.retry.support.RetryTemplate' (OnClassCondition)

   FlywayAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.flywaydb.core.Flyway' (OnClassCondition)

   FreeMarkerAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'freemarker.template.Configuration', 'org.springframework.ui.freemarker.FreeMarkerConfigurationFactory' (OnClassCondition)

   GroovyTemplateAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'groovy.text.markup.MarkupTemplateEngine' (OnClassCondition)

   GsonAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'com.google.gson.Gson' (OnClassCondition)

   GsonHttpMessageConvertersConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'com.google.gson.Gson' (OnClassCondition)

   GuavaCacheConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.cache.guava.GuavaCacheManager' (OnClassCondition)

   H2ConsoleAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.h2.server.web.WebServlet' (OnClassCondition)

   HazelcastAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'com.hazelcast.core.HazelcastInstance' (OnClassCondition)

   HazelcastCacheConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.hazelcast.core.HazelcastInstance', 'com.hazelcast.spring.cache.HazelcastCacheManager' (OnClassCondition)

   HazelcastJpaDependencyAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.hazelcast.core.HazelcastInstance', 'org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean' (OnClassCondition)

   HibernateJpaAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean', 'javax.persistence.EntityManager' (OnClassCondition)

   HttpClientConfiguration.OkHttpClientConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'okhttp3.OkHttpClient' (OnClassCondition)

   HttpClientFeignLoadBalancedConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'feign.httpclient.ApacheHttpClient' (OnClassCondition)

   HypermediaAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.springframework.hateoas.Resource', 'org.springframework.plugin.core.Plugin' (OnClassCondition)

   HystrixAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.boot.actuate.health.HealthIndicator' (OnClassCondition)

   HystrixSecurityAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.security.core.context.SecurityContext' (OnClassCondition)

   InfinispanCacheConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.infinispan.spring.provider.SpringEmbeddedCacheManager' (OnClassCondition)

   IntegrationAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.integration.config.EnableIntegration' (OnClassCondition)

   JCacheCacheConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'javax.cache.Caching', 'org.springframework.cache.jcache.JCacheCacheManager' (OnClassCondition)

   JacksonAutoConfiguration.JodaDateTimeJacksonConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.joda.time.DateTime', 'com.fasterxml.jackson.datatype.joda.ser.DateTimeSerializer', 'com.fasterxml.jackson.datatype.joda.cfg.JacksonJodaDateFormat' (OnClassCondition)

   JacksonAutoConfiguration.ParameterNamesModuleConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'com.fasterxml.jackson.module.paramnames.ParameterNamesModule' (OnClassCondition)

   JacksonHttpMessageConvertersConfiguration.MappingJackson2XmlHttpMessageConverterConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'com.fasterxml.jackson.dataformat.xml.XmlMapper' (OnClassCondition)

   JdbcTemplateAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.jdbc.core.JdbcTemplate' (OnClassCondition)

   JerseyAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.glassfish.jersey.server.spring.SpringComponentProvider' (OnClassCondition)

   JestAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'io.searchbox.client.JestClient' (OnClassCondition)

   JmsAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'javax.jms.Message', 'org.springframework.jms.core.JmsTemplate' (OnClassCondition)

   JmxAutoConfiguration:
      Did not match:
         - @ConditionalOnProperty (spring.jmx.enabled=true) found different value in property 'enabled' (OnPropertyCondition)
      Matched:
         - @ConditionalOnClass found required class 'org.springframework.jmx.export.MBeanExporter'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   JndiConnectionFactoryAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.jms.core.JmsTemplate' (OnClassCondition)

   JndiDataSourceAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType' (OnClassCondition)

   JooqAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.jooq.DSLContext' (OnClassCondition)

   JpaRepositoriesAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.data.jpa.repository.JpaRepository' (OnClassCondition)

   JtaAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'javax.transaction.Transaction' (OnClassCondition)

   KafkaAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.kafka.core.KafkaTemplate' (OnClassCondition)

   LdapAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.ldap.core.ContextSource' (OnClassCondition)

   LdapDataAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.data.ldap.repository.LdapRepository' (OnClassCondition)

   LdapRepositoriesAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.data.ldap.repository.LdapRepository' (OnClassCondition)

   LifecycleMvcEndpointAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.boot.actuate.endpoint.EnvironmentEndpoint' (OnClassCondition)

   LinkedInAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.springframework.social.config.annotation.SocialConfigurerAdapter', 'org.springframework.social.linkedin.connect.LinkedInConnectionFactory' (OnClassCondition)

   LiquibaseAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'liquibase.integration.spring.SpringLiquibase' (OnClassCondition)

   LoadBalancerAutoConfiguration.RetryAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.retry.support.RetryTemplate' (OnClassCondition)

   LoadBalancerAutoConfiguration.RetryInterceptorAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.retry.support.RetryTemplate' (OnClassCondition)

   MailSenderAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'javax.mail.internet.MimeMessage' (OnClassCondition)

   MailSenderValidatorAutoConfiguration:
      Did not match:
         - @ConditionalOnProperty (spring.mail.test-connection) did not find property 'test-connection' (OnPropertyCondition)

   MessageSourceAutoConfiguration:
      Did not match:
         - ResourceBundle did not find bundle with basename messages (MessageSourceAutoConfiguration.ResourceBundleCondition)

   MongoAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'com.mongodb.MongoClient' (OnClassCondition)

   MongoDataAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.mongodb.Mongo', 'org.springframework.data.mongodb.core.MongoTemplate' (OnClassCondition)

   MongoRepositoriesAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.mongodb.Mongo', 'org.springframework.data.mongodb.repository.MongoRepository' (OnClassCondition)

   MustacheAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'com.samskivert.mustache.Mustache' (OnClassCondition)

   Neo4jDataAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.neo4j.ogm.session.SessionFactory', 'org.springframework.data.neo4j.transaction.Neo4jTransactionManager', 'org.springframework.transaction.PlatformTransactionManager' (OnClassCondition)

   Neo4jRepositoriesAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.neo4j.ogm.session.Neo4jSession', 'org.springframework.data.neo4j.repository.GraphRepository' (OnClassCondition)

   NoopDiscoveryClientAutoConfiguration:
      Did not match:
         - @ConditionalOnMissingBean (types: org.springframework.cloud.client.discovery.DiscoveryClient; SearchStrategy: all) found beans 'compositeDiscoveryClient', 'simpleDiscoveryClient', 'zookeeperDiscoveryClientDeprecated' (OnBeanCondition)

   NoopDiscoveryClientAutoConfiguration.Boot15PortFinderConfiguration:
      Did not match:
         - Ancestor org.springframework.cloud.client.discovery.noop.NoopDiscoveryClientAutoConfiguration did not match (ConditionEvaluationReport.AncestorsMatchedCondition)
      Matched:
         - @ConditionalOnClass found required classes 'org.springframework.web.context.support.GenericWebApplicationContext', 'org.springframework.boot.context.embedded.EmbeddedWebApplicationContext'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   OAuth2AutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.security.oauth2.common.OAuth2AccessToken' (OnClassCondition)

   OkHttpFeignLoadBalancedConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'feign.okhttp.OkHttpClient' (OnClassCondition)

   PersistenceExceptionTranslationAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor' (OnClassCondition)

   ProjectInfoAutoConfiguration#buildProperties:
      Did not match:
         - @ConditionalOnResource did not find resource '${spring.info.build.location:classpath:META-INF/build-info.properties}' (OnResourceCondition)

   ProjectInfoAutoConfiguration#gitProperties:
      Did not match:
         - GitResource did not find git info at classpath:git.properties (ProjectInfoAutoConfiguration.GitResourceAvailableCondition)

   RabbitAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.springframework.amqp.rabbit.core.RabbitTemplate', 'com.rabbitmq.client.Channel' (OnClassCondition)

   ReactorAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'reactor.spring.context.config.EnableReactor', 'reactor.Environment' (OnClassCondition)

   RedisAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.springframework.data.redis.connection.jedis.JedisConnection', 'org.springframework.data.redis.core.RedisOperations', 'redis.clients.jedis.Jedis' (OnClassCondition)

   RedisRepositoriesAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'redis.clients.jedis.Jedis', 'org.springframework.data.redis.repository.configuration.EnableRedisRepositories' (OnClassCondition)

   RefreshEndpointAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.boot.actuate.endpoint.Endpoint' (OnClassCondition)

   RepositoryRestMvcAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.data.rest.webmvc.config.RepositoryRestMvcConfiguration' (OnClassCondition)

   RibbonAutoConfiguration#loadBalancedBackoffPolicyFactory:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.retry.support.RetryTemplate' (OnClassCondition)

   RibbonAutoConfiguration#loadBalancedRetryPolicyFactory:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.retry.support.RetryTemplate' (OnClassCondition)

   RibbonAutoConfiguration#loadBalancerClient:
      Did not match:
         - @ConditionalOnMissingBean (types: org.springframework.cloud.client.loadbalancer.LoadBalancerClient; SearchStrategy: all) found bean 'loadBalancerClient' (OnBeanCondition)

   RibbonAutoConfiguration#ribbonApplicationContextInitializer:
      Did not match:
         - @ConditionalOnProperty (ribbon.eager-load.enabled) did not find property 'ribbon.eager-load.enabled' (OnPropertyCondition)

   RibbonAutoConfiguration.RibbonClientConfig:
      Did not match:
         - AnyNestedCondition 0 matched 2 did not; NestedCondition on RibbonAutoConfiguration.OnRibbonRestClientCondition.RibbonProperty @ConditionalOnProperty (ribbon.restclient.enabled) did not find property 'ribbon.restclient.enabled'; NestedCondition on RibbonAutoConfiguration.OnRibbonRestClientCondition.ZuulProperty @ConditionalOnProperty (ribbon.http.client.enabled) did not find property 'ribbon.http.client.enabled' (RibbonAutoConfiguration.OnRibbonRestClientCondition)
      Matched:
         - @ConditionalOnClass found required class 'com.netflix.client.http.HttpRequest'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   RibbonCommandFactoryConfiguration.OkHttpRibbonConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'okhttp3.OkHttpClient' (OnClassCondition)

   RibbonCommandFactoryConfiguration.RestClientRibbonConfiguration:
      Did not match:
         - AnyNestedCondition 0 matched 1 did not; NestedCondition on RibbonCommandFactoryConfiguration.OnRibbonRestClientCondition.RibbonProperty @ConditionalOnProperty (ribbon.restclient.enabled) did not find property 'ribbon.restclient.enabled' (RibbonCommandFactoryConfiguration.OnRibbonRestClientCondition)

   SecurityAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.springframework.security.authentication.AuthenticationManager', 'org.springframework.security.config.annotation.authentication.configurers.GlobalAuthenticationConfigurerAdapter' (OnClassCondition)

   SecurityFilterAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer', 'org.springframework.security.config.http.SessionCreationPolicy' (OnClassCondition)

   SendGridAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'com.sendgrid.SendGrid' (OnClassCondition)

   ServiceRegistryAutoConfiguration.ServiceRegistryEndpointConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.boot.actuate.endpoint.Endpoint' (OnClassCondition)

   ServoMetricsAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.boot.actuate.metrics.reader.MetricReader' (OnClassCondition)

   SessionAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.session.Session' (OnClassCondition)

   SitePreferenceAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.springframework.mobile.device.site.SitePreferenceHandlerInterceptor', 'org.springframework.mobile.device.site.SitePreferenceHandlerMethodArgumentResolver' (OnClassCondition)

   SocialWebAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.springframework.social.connect.web.ConnectController', 'org.springframework.social.config.annotation.SocialConfigurerAdapter' (OnClassCondition)

   SolrAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.apache.solr.client.solrj.impl.HttpSolrClient', 'org.apache.solr.client.solrj.impl.CloudSolrClient' (OnClassCondition)

   SolrRepositoriesAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.apache.solr.client.solrj.SolrClient', 'org.springframework.data.solr.repository.SolrRepository' (OnClassCondition)

   SpringApplicationAdminJmxAutoConfiguration:
      Did not match:
         - @ConditionalOnProperty (spring.application.admin.enabled=true) did not find property 'enabled' (OnPropertyCondition)

   SpringDataWebAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.data.web.PageableHandlerMethodArgumentResolver' (OnClassCondition)

   ThymeleafAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.thymeleaf.spring4.SpringTemplateEngine' (OnClassCondition)

   TransactionAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.transaction.PlatformTransactionManager' (OnClassCondition)

   TwitterAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.springframework.social.config.annotation.SocialConfigurerAdapter', 'org.springframework.social.twitter.connect.TwitterConnectionFactory' (OnClassCondition)

   WebMvcAutoConfiguration.ResourceChainCustomizerConfiguration:
      Did not match:
         - @ConditionalOnEnabledResourceChain did not find class org.webjars.WebJarAssetLocator (OnEnabledResourceChainCondition)

   WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter#beanNameViewResolver:
      Did not match:
         - @ConditionalOnMissingBean (types: org.springframework.web.servlet.view.BeanNameViewResolver; SearchStrategy: all) found bean 'beanNameViewResolver' (OnBeanCondition)

   WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter#dateFormatter:
      Did not match:
         - @ConditionalOnProperty (spring.mvc.date-format) did not find property 'date-format' (OnPropertyCondition)

   WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter#localeResolver:
      Did not match:
         - @ConditionalOnProperty (spring.mvc.locale) did not find property 'locale' (OnPropertyCondition)

   WebServicesAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.ws.transport.http.MessageDispatcherServlet' (OnClassCondition)

   WebSocketAutoConfiguration.JettyWebSocketConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer' (OnClassCondition)

   WebSocketAutoConfiguration.UndertowWebSocketConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'io.undertow.websockets.jsr.Bootstrap' (OnClassCondition)

   WebSocketMessagingAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer' (OnClassCondition)

   XADataSourceAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'javax.transaction.TransactionManager', 'org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType' (OnClassCondition)

   ZookeeperAutoConfiguration.ZookeeperHealthConfig:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.boot.actuate.endpoint.Endpoint' (OnClassCondition)

   ZookeeperDiscoveryAutoConfiguration#zookeeperDiscoveryClient:
      Did not match:
         - @ConditionalOnMissingBean (types: org.springframework.cloud.zookeeper.discovery.ZookeeperServiceDiscovery; SearchStrategy: all) found bean 'zookeeperServiceDiscovery' (OnBeanCondition)

   ZookeeperDiscoveryAutoConfiguration#zookeeperDiscoveryProperties:
      Did not match:
         - @ConditionalOnMissingBean (types: org.springframework.cloud.zookeeper.discovery.ZookeeperDiscoveryProperties; SearchStrategy: all) found bean 'zookeeperDiscoveryProperties' (OnBeanCondition)

   ZookeeperDiscoveryAutoConfiguration.ZookeeperDiscoveryHealthConfig:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.boot.actuate.endpoint.Endpoint' (OnClassCondition)

   ZookeeperServiceRegistryAutoConfiguration#instanceSerializer:
      Did not match:
         - @ConditionalOnMissingBean (types: org.apache.curator.x.discovery.details.InstanceSerializer; SearchStrategy: all) found bean 'deprecatedInstanceSerializer' (OnBeanCondition)

   ZuulProxyAutoConfiguration:
      Did not match:
         - @ConditionalOnBean (types: org.springframework.cloud.netflix.zuul.ZuulProxyMarkerConfiguration$Marker; SearchStrategy: all) did not find any beans (OnBeanCondition)

   ZuulProxyAutoConfiguration.EndpointConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.boot.actuate.endpoint.Endpoint' (OnClassCondition)
         - Ancestor org.springframework.cloud.netflix.zuul.ZuulProxyAutoConfiguration did not match (ConditionEvaluationReport.AncestorsMatchedCondition)

   ZuulProxyAutoConfiguration.NoActuatorConfiguration:
      Did not match:
         - Ancestor org.springframework.cloud.netflix.zuul.ZuulProxyAutoConfiguration did not match (ConditionEvaluationReport.AncestorsMatchedCondition)
      Matched:
         - @ConditionalOnClass found required class; @ConditionalOnMissingClass did not find unwanted class 'org.springframework.boot.actuate.endpoint.Endpoint' (OnClassCondition)

   ZuulServerAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'com.netflix.zuul.http.ZuulServlet' (OnClassCondition)

   ZuulServerAutoConfiguration.ZuulCounterFactoryConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.boot.actuate.metrics.CounterService' (OnClassCondition)
         - Ancestor org.springframework.cloud.netflix.zuul.ZuulServerAutoConfiguration did not match (ConditionEvaluationReport.AncestorsMatchedCondition)


@spencergibb
Copy link
Member

It would be better if you provided an actual project with the source code rather than paste it in the issue

@thinkd1ff
Copy link
Author

thanks again,I upload the demo on https://github.com/rainplus/spring-cloud-fegin-demo.git

@ryanjbaxter
Copy link
Contributor

I had to remove Zookeeper from the sample and instead set wallet.ribbon.listOfServes to try and run the app and wasnt able to reproduce the problem.

@thinkd1ff
Copy link
Author

I appreciate your giving me so much of your time. it mean when I use the zookeeper,i can't use fegin with ribbon and other http client?

@ryanjbaxter
Copy link
Contributor

No I am not saying that. I was just stating that I removed it to make your sample easier to run. Zookeeper should have no effect on the problem you are describing it is just providing the service information.

@thinkd1ff
Copy link
Author

thinkd1ff commented Dec 22, 2017

the problem is must to set spring.cloud.zookeeper.dependency.headers.enabled=false,in the class DependencyFeignClientAutoConfiguration in the cloud-zookeeper ,it will create default LoadBalancerFeignClient like that:

@Configuration
@ConditionalOnDependenciesPassed
@ConditionalOnZookeeperEnabled
@ConditionalOnProperty(value = "spring.cloud.zookeeper.dependency.headers.enabled", matchIfMissing = true)
@ConditionalOnClass({ Client.class, LoadBalancerFeignClient.class })
@AutoConfigureAfter({ RibbonAutoConfiguration.class, FeignRibbonClientAutoConfiguration.class })
public class DependencyFeignClientAutoConfiguration {
	@Autowired(required = false) private LoadBalancerFeignClient ribbonClient;
	@Autowired private ZookeeperDependencies zookeeperDependencies;
	@Autowired private CachingSpringLoadBalancerFactory loadBalancerFactory;
	@Autowired private SpringClientFactory springClientFactory;

	@Bean
	@Primary
	Client dependencyBasedFeignClient() {
		return new LoadBalancerFeignClient(
				new Client.Default(null, null), this.loadBalancerFactory, this.springClientFactory) {

			@Override
			public Response execute(Request request, Request.Options options)
					throws IOException {
				URI asUri = URI.create(request.url());
				String clientName = asUri.getHost();
				ZookeeperDependency dependencyForAlias =
						DependencyFeignClientAutoConfiguration.this.zookeeperDependencies
						.getDependencyForAlias(clientName);
				Map<String, Collection<String>> headers = getUpdatedHeadersIfPossible(
						request, dependencyForAlias);
				if (DependencyFeignClientAutoConfiguration.this.ribbonClient != null) {
					return DependencyFeignClientAutoConfiguration.this.ribbonClient.execute(
							request(request, headers), options);
				}
				return super.execute(request(request, headers), options);
			}

			private Request request(Request request,
					Map<String, Collection<String>> headers) {
				return Request.create(request.method(), request.url(), headers,
						request.body(), request.charset());
			}

			private Map<String, Collection<String>> getUpdatedHeadersIfPossible(
					Request request, ZookeeperDependency dependencyForAlias) {
				if (dependencyForAlias != null) {
					return Collections.unmodifiableMap(new HashMap<>(
							dependencyForAlias.getUpdatedHeaders(request.headers())));
				}
				return request.headers();
			}

		};
	}

}

I appreciate your giving me so much of your time,again! @ryanjbaxter
and the I don't need upgrade spring-boot just use the 1.4.1 and spring-cloud version Camden.SR7

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants