解决-----springCloud gateway 网关application.yml配置文件不生效致使没法路由 以及 不要添加devtools

说实话这个问题恶心死我了,特此记录一下java

报错

com.alibaba.nacos.api.exception.NacosException: null
	at com.alibaba.nacos.api.config.ConfigFactory.createConfigService(ConfigFactory.java:45) ~[nacos-api-1.0.0.jar:na]
	at com.alibaba.nacos.api.NacosFactory.createConfigService(NacosFactory.java:41) ~[nacos-api-1.0.0.jar:na]
	at org.springframework.cloud.alibaba.nacos.NacosConfigProperties.configServiceInstance(NacosConfigProperties.java:343) ~[spring-cloud-alibaba-nacos-config-0.2.2.RELEASE.jar:0.2.2.RELEASE]
	at org.springframework.cloud.alibaba.nacos.NacosConfigAutoConfiguration.nacosContextRefresher(NacosConfigAutoConfiguration.java:63) [spring-cloud-alibaba-nacos-config-0.2.2.RELEASE.jar:0.2.2.RELEASE]
	at org.springframework.cloud.alibaba.nacos.NacosConfigAutoConfiguration$$EnhancerBySpringCGLIB$$dd92b3e6.CGLIB$nacosContextRefresher$2(<generated>) [spring-cloud-alibaba-nacos-config-0.2.2.RELEASE.jar:0.2.2.RELEASE]
	at org.springframework.cloud.alibaba.nacos.NacosConfigAutoConfiguration$$EnhancerBySpringCGLIB$$dd92b3e6$$FastClassBySpringCGLIB$$d405c6d7.invoke(<generated>) [spring-cloud-alibaba-nacos-config-0.2.2.RELEASE.jar:0.2.2.RELEASE]
	at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244) [spring-core-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:363) [spring-context-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.cloud.alibaba.nacos.NacosConfigAutoConfiguration$$EnhancerBySpringCGLIB$$dd92b3e6.nacosContextRefresher(<generated>) [spring-cloud-alibaba-nacos-config-0.2.2.RELEASE.jar:0.2.2.RELEASE]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_202]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_202]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_202]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_202]
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) [spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:622) [spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:607) [spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1321) [spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1160) [spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555) [spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515) [spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) [spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) [spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) [spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:845) ~[spring-beans-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:877) ~[spring-context-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549) ~[spring-context-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.refresh(ReactiveWebServerApplicationContext.java:66) ~[spring-boot-2.1.6.RELEASE.jar:2.1.6.RELEASE]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:742) ~[spring-boot-2.1.6.RELEASE.jar:2.1.6.RELEASE]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:389) ~[spring-boot-2.1.6.RELEASE.jar:2.1.6.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:311) ~[spring-boot-2.1.6.RELEASE.jar:2.1.6.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1213) ~[spring-boot-2.1.6.RELEASE.jar:2.1.6.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1202) ~[spring-boot-2.1.6.RELEASE.jar:2.1.6.RELEASE]
	at com.atguigu.gateway.GulimallGatewayApplication.main(GulimallGatewayApplication.java:19) ~[classes/:na]

2019-08-24 11:01:46.351  INFO 27048 --- [           main] o.s.s.c.ThreadPoolTaskScheduler          : Initializing ExecutorService
2019-08-24 11:01:46.483 ERROR 27048 --- [TaskScheduler-1] o.s.c.a.nacos.discovery.NacosWatch       : Error watching Nacos Service change

java.lang.IllegalArgumentException: no server available
	at com.alibaba.nacos.client.naming.net.NamingProxy.reqAPI(NamingProxy.java:354) ~[nacos-client-1.0.0.jar:na]
	at com.alibaba.nacos.client.naming.net.NamingProxy.reqAPI(NamingProxy.java:346) ~[nacos-client-1.0.0.jar:na]
	at com.alibaba.nacos.client.naming.net.NamingProxy.reqAPI(NamingProxy.java:294) ~[nacos-client-1.0.0.jar:na]
	at com.alibaba.nacos.client.naming.net.NamingProxy.getServiceList(NamingProxy.java:276) ~[nacos-client-1.0.0.jar:na]
	at com.alibaba.nacos.client.naming.net.NamingProxy.getServiceList(NamingProxy.java:252) ~[nacos-client-1.0.0.jar:na]
	at com.alibaba.nacos.client.naming.NacosNamingService.getServicesOfServer(NacosNamingService.java:525) ~[nacos-client-1.0.0.jar:na]
	at org.springframework.cloud.alibaba.nacos.discovery.NacosWatch.nacosServicesWatch(NacosWatch.java:127) ~[spring-cloud-alibaba-nacos-discovery-0.2.2.RELEASE.jar:0.2.2.RELEASE]
	at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) ~[spring-context-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_202]
	at java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:308) ~[na:1.8.0_202]
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java) ~[na:1.8.0_202]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) ~[na:1.8.0_202]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) ~[na:1.8.0_202]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_202]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_202]
	at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_202]

思考

一、查看了服务端口

在这里插入图片描述

查看端口结果是是默认的8080, 个人yml配置里是server.port=88, 我联想到yml配置文件没生效?react

server:
  port: 88
 
spring:
  cloud:
    gateway:
      routes:
        - id: pms_route
          uri: lb://gulimall-pms
          predicates:
            - Path=/pms/**, /api/index/**, /api/item/**
          filters:
            # {} 是用来取值的
            - RewritePath=/api/(?<segment>.*), /$\{segment}

        - id: oms_route
          uri: lb://gulimall-oms
          predicates:
            - Path=/oms/**
            # filters:
            # - AddResponseHeader=heyijie,666
        - id: sms_route
          uri: lb://gulimall-sms
          predicates:
            - Path=/sms/**
        - id: ums_route
          uri: lb://gulimall-ums
          predicates:
            - Path=/ums/**, /api/ums/**
          filters:
            # {} 是用来取值的
            - RewritePath=/api/(?<segment>.*), /$\{segment}

        - id: wms_route
          uri: lb://gulimall-wms
          predicates:
            - Path=/wms/**
        - id: gulimall_search_route
          uri: lb://gulimall-search
          predicates:
            # 可能会有特殊字符转义 \{
            - Path=/api/search/**
          filters:
            - RewritePath=/api/(?<segment>.*), /$\{segment}

二、查看编译目录

如图,编译目录果真没有applicaiton.yml文件,springcloud gateway服务直接报错,路由也不生效web

在这里插入图片描述

解决

三、修改application.yml从新编译 打包

编译目录下必定要有application.ymlspring

查了一下多是我application.yml的语法错了,修改了一下,从新编译打包后,编译目录下就有application.yml了,且该配置生效shell

建议不要添加devtools依赖

这个我也不太清除,加devtools的依赖,在有多个路由的时候,重启服务应用程序 application.yml文件时有时无的,建议仍是不要加了, 若是有大佬能指点一二,就更好了json

若是application.yml 不在编译目录下,那么访问网关的路由地址就会报错api

{
    "timestamp": "2019-08-24T05:22:56.030+0000",
    "path": "/pms/skuinfo/cart/72",
    "status": 404,
    "error": "Not Found",
    "message": null,
	org.springframework.web.server.ResponseStatusException: 404 NOT_FOUND
		at org.springframework.web.reactive.resource.ResourceWebHandler.lambda$handle$0(ResourceWebHandler.java:325)
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:44)
		at reactor.core.publisher.MonoOnAssembly.subscribe(MonoOnAssembly.java:61)
		at reactor.core.publisher.Mono.subscribe(Mono.java:3848)
		at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:75)
		at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onComplete(FluxOnAssembly.java:355)
		at reactor.core.publisher.MonoFlatMap$FlatMapMain.onComplete(MonoFlatMap.java:174)
		at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onComplete(FluxOnAssembly.java:355)
		at reactor.core.publisher.MonoNext$NextSubscriber.onComplete(MonoNext.java:96)
		at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onComplete(FluxOnAssembly.java:355)
		at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:360)
		at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:212)
		at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onSubscribe(FluxOnAssembly.java:426)
		at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:139)
		at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:63)
		at reactor.core.publisher.FluxOnAssembly.subscribe(FluxOnAssembly.java:122)
		at reactor.core.publisher.FluxConcatMap.subscribe(FluxConcatMap.java:121)
		at reactor.core.publisher.FluxOnAssembly.subscribe(FluxOnAssembly.java:122)
		at reactor.core.publisher.MonoNext.subscribe(MonoNext.java:40)
		at reactor.core.publisher.MonoOnAssembly.subscribe(MonoOnAssembly.java:61)
		at reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60)
		at reactor.core.publisher.MonoOnAssembly.subscribe(MonoOnAssembly.java:61)
		at reactor.core.publisher.MonoSwitchIfEmpty.subscribe(MonoSwitchIfEmpty.java:44)
		at reactor.core.publisher.MonoOnAssembly.subscribe(MonoOnAssembly.java:61)
		at reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60)
		at reactor.core.publisher.MonoOnAssembly.subscribe(MonoOnAssembly.java:61)
		at reactor.core.publisher.Mono.subscribe(Mono.java:3848)
		at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:172)
		at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:56)
		at reactor.core.publisher.MonoOnAssembly.subscribe(MonoOnAssembly.java:61)
		at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:150)
		at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:345)
		at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:67)
		at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:345)
		at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:76)
		at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:345)
		at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:275)
		at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:849)
		at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:345)
		at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:114)
		at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:345)
		at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2071)
		at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:442)
		at reactor.core.publisher.FluxMap$MapSubscriber.request(FluxMap.java:155)
		at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.request(FluxOnAssembly.java:442)
		at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:1879)
		at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:1753)
		at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onSubscribe(FluxOnAssembly.java:426)
		at reactor.core.publisher.FluxMap$MapSubscriber.onSubscribe(FluxMap.java:86)
		at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onSubscribe(FluxOnAssembly.java:426)
		at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:54)
		at reactor.core.publisher.MonoCallableOnAssembly.subscribe(MonoCallableOnAssembly.java:82)
		at reactor.core.publisher.MonoMap.subscribe(MonoMap.java:55)
		at reactor.core.publisher.MonoOnAssembly.subscribe(MonoOnAssembly.java:61)
		at reactor.core.publisher.Mono.subscribe(Mono.java:3848)
		at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:442)
		at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:212)
		at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onSubscribe(FluxOnAssembly.java:426)
		at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:139)
		at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:63)
		at reactor.core.publisher.FluxOnAssembly.subscribe(FluxOnAssembly.java:122)
		at reactor.core.publisher.FluxConcatMap.subscribe(FluxConcatMap.java:121)
		at reactor.core.publisher.FluxOnAssembly.subscribe(FluxOnAssembly.java:122)
		at reactor.core.publisher.MonoNext.subscribe(MonoNext.java:40)
		at reactor.core.publisher.MonoOnAssembly.subscribe(MonoOnAssembly.java:61)
		at reactor.core.publisher.MonoSwitchIfEmpty.subscribe(MonoSwitchIfEmpty.java:44)
		at reactor.core.publisher.MonoOnAssembly.subscribe(MonoOnAssembly.java:61)
		at reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60)
		at reactor.core.publisher.MonoOnAssembly.subscribe(MonoOnAssembly.java:61)
		at reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60)
		at reactor.core.publisher.MonoOnAssembly.subscribe(MonoOnAssembly.java:61)
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52)
		at reactor.core.publisher.MonoOnAssembly.subscribe(MonoOnAssembly.java:61)
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52)
		at reactor.core.publisher.MonoOnAssembly.subscribe(MonoOnAssembly.java:61)
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52)
		at reactor.core.publisher.MonoOnAssembly.subscribe(MonoOnAssembly.java:61)
		at reactor.core.publisher.MonoOnErrorResume.subscribe(MonoOnErrorResume.java:44)
		at reactor.core.publisher.MonoOnAssembly.subscribe(MonoOnAssembly.java:61)
		at reactor.core.publisher.MonoOnErrorResume.subscribe(MonoOnErrorResume.java:44)
		at reactor.core.publisher.MonoOnAssembly.subscribe(MonoOnAssembly.java:56)
		at reactor.core.publisher.MonoPeekTerminal.subscribe(MonoPeekTerminal.java:61)
		at reactor.core.publisher.MonoOnAssembly.subscribe(MonoOnAssembly.java:61)
		at reactor.core.publisher.MonoOnErrorResume.subscribe(MonoOnErrorResume.java:44)
		at reactor.core.publisher.MonoOnAssembly.subscribe(MonoOnAssembly.java:61)
		at reactor.core.publisher.Mono.subscribe(Mono.java:3848)
		at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:172)
		at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:56)
		at reactor.core.publisher.MonoOnAssembly.subscribe(MonoOnAssembly.java:56)
		at reactor.core.publisher.MonoPeekFuseable.subscribe(MonoPeekFuseable.java:70)
		at reactor.core.publisher.MonoOnAssembly.subscribe(MonoOnAssembly.java:56)
		at reactor.core.publisher.MonoPeekTerminal.subscribe(MonoPeekTerminal.java:61)
		at reactor.core.publisher.MonoOnAssembly.subscribe(MonoOnAssembly.java:61)
		at reactor.netty.http.server.HttpServerHandle.onStateChange(HttpServerHandle.java:64)
		at reactor.netty.tcp.TcpServerBind$ChildObserver.onStateChange(TcpServerBind.java:226)
		at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:442)
		at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:91)
		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
		at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
		at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:161)
		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
		at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
		at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:438)
		at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323)
		at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:297)
		at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:253)
		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
		at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
		at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1408)
		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
		at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930)
		at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
		at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:682)
		at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:617)
		at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:534)
		at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496)
		at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:906)
		at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
		at java.lang.Thread.run(Thread.java:748)
		Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 
	Assembly trace from producer [reactor.core.publisher.MonoError] :
		reactor.core.publisher.Mono.error(Mono.java:261)
		org.springframework.web.reactive.resource.ResourceWebHandler.lambda$handle$0(ResourceWebHandler.java:325)
	Error has been observed by the following operator(s):
		|_	Mono.error ⇢  org.springframework.web.reactive.resource.ResourceWebHandler.lambda$handle$0(ResourceWebHandler.java:325)
		|_	Mono.defer ⇢ org.springframework.web.reactive.resource.ResourceWebHandler.handle(ResourceWebHandler.java:323)
		|_	Mono.switchIfEmpty ⇢ org.springframework.web.reactive.resource.ResourceWebHandler.handle(ResourceWebHandler.java:323)
		|_	Mono.flatMap ⇢ org.springframework.web.reactive.resource.ResourceWebHandler.handle(ResourceWebHandler.java:327)
		|_	Mono.then ⇢ org.springframework.web.reactive.result.SimpleHandlerAdapter.handle(SimpleHandlerAdapter.java:46)
		|_	Mono.flatMap ⇢ org.springframework.web.reactive.DispatcherHandler.handle(DispatcherHandler.java:151)
		|_	Mono.flatMap ⇢ org.springframework.web.reactive.DispatcherHandler.handle(DispatcherHandler.java:152)
		|_	Mono.defer ⇢ org.springframework.web.server.handler.DefaultWebFilterChain.filter(DefaultWebFilterChain.java:119)
		|_	Mono.defer ⇢ org.springframework.web.server.handler.DefaultWebFilterChain.filter(DefaultWebFilterChain.java:119)
		|_	Mono.defer ⇢ org.springframework.web.server.handler.DefaultWebFilterChain.filter(DefaultWebFilterChain.java:119)