title: Why spring webflux is choosing jetty by default and then failing?
body: <p>I am trying to run Spring boot 2.0.0.M7 based application.</p>
  
  <p>Here are spring related dependencies I have in my build.gradle:</p>
  
  <pre><code>compile "org.springframework.boot:spring-boot-starter-webflux:2.0.0.M7"
  compile "org.springframework.boot:spring-boot-starter-data-ldap:2.0.0.M7"
  compile "org.springframework.boot:spring-boot-starter-actuator:2.0.0.M7"
  </code></pre>
  
  <p>Based on autoconfiguration report, is it possible to tell WHY spring wants to use Jetty as the reactive engine by default (when actually reactor Netty is the default engine as per spring docs)</p>
  
  <p>spring boot auto-configuration report (extract):</p>
  
  <pre><code>ReactiveWebServerConfiguration.ReactorNettyAutoConfiguration:
    Did not match:
       - @ConditionalOnMissingBean (types: org.springframework.boot.web.reactive.server.ReactiveWebServerFactory; SearchStrategy: all) found beans of type'org.springframework.boot.web.reactive.server.ReactiveWebServerFactory'jettyReactiveWebServerFactory (OnBeanCondition)
    Matched:
       - @ConditionalOnClass found required class 'reactor.ipc.netty.http.server.HttpServer'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
  
  ReactiveWebServerAutoConfiguration#defaultReactiveWebServerCustomizer matched:
        - @ConditionalOnMissingBean (types: org.springframework.boot.autoconfigure.web.reactive.DefaultReactiveWebServerCustomizer; SearchStrategy: all) did not find any beans (OnBeanCondition)
  
     ReactiveWebServerConfiguration.JettyAutoConfiguration matched:
        - @ConditionalOnClass found required class 'org.eclipse.jetty.server.Server'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
        - @ConditionalOnMissingBean (types: org.springframework.boot.web.reactive.server.ReactiveWebServerFactory; SearchStrategy: all) did not find any beans (OnBeanCondition)
  </code></pre>
  
  <p>Exception I get during application startup:</p>
  
  <pre><code>[0;39morg.springframework.context.ApplicationContextException: Unable to start reactive web server; nested exception is java.lang.NoClassDefFoundError: org/eclipse/jetty/servlet/ServletHolder
      at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.onRefresh(ReactiveWebServerApplicationContext.java:64)
      at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
      at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.refresh(ReactiveWebServerApplicationContext.java:49)
      at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750)
      at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:386)
      at org.springframework.boot.SpringApplication.run(SpringApplication.java:327)
      at org.springframework.boot.SpringApplication.run(SpringApplication.java:1245)
      at org.springframework.boot.SpringApplication.run(SpringApplication.java:1233)
      at com.xyz.abc.routing.web.ApiApplication.main(ApiApplication.java:14)
      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.loader.MainMethodRunner.run(MainMethodRunner.java:48)
      at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
      at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
      at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)
  Caused by: java.lang.NoClassDefFoundError: org/eclipse/jetty/servlet/ServletHolder
      at org.springframework.boot.web.embedded.jetty.JettyReactiveWebServerFactory.createJettyServer(JettyReactiveWebServerFactory.java:96)
      at org.springframework.boot.web.embedded.jetty.JettyReactiveWebServerFactory.getWebServer(JettyReactiveWebServerFactory.java:87)
      at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.createWebServer(ReactiveWebServerApplicationContext.java:87)
      at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.onRefresh(ReactiveWebServerApplicationContext.java:61)
      ... 16 common frames omitted
  Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.servlet.ServletHolder
      at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
      at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:93)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
      ... 20 common frames omitted
  </code></pre>
  
  <p>How can I make Spring use reactor netty?</p>