question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

ProxyEndpoint [Salamander-ClientToZuulWorker-1] Error while connecting to origin

See original GitHub issue

I have tried setting up project using the latest zuul version 2.3.0 and zuul-example and got some error when run,

Here is the error that I got:

2021-06-10 10:29:12,013 INFO  zuul.server.nettylog [Salamander-ClientToZuulWorker-1] [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 - R:/0:0:0:0:0:0:0:1%0:33042] REGISTERED
2021-06-10 10:29:12,014 INFO  zuul.server.nettylog [Salamander-ClientToZuulWorker-1] [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 - R:/0:0:0:0:0:0:0:1%0:33042] ACTIVE
2021-06-10 10:29:12,015 INFO  zuul.server.nettylog [Salamander-ClientToZuulWorker-1] [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 - R:/0:0:0:0:0:0:0:1%0:33042] USER_EVENT: com.netflix.netty.common.HttpLifecycleChannelHandler$StartEvent@1d64b126
2021-06-10 10:29:12,015 INFO  zuul.server.nettylog [Salamander-ClientToZuulWorker-1] [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 - R:/0:0:0:0:0:0:0:1%0:33042] READ: DefaultHttpRequest(decodeResult: success, version: HTTP/1.1)
GET /example HTTP/1.1
Host: localhost:8887
User-Agent: curl/7.77.0
Accept: */*
2021-06-10 10:29:14,493 ERROR com.netflix.zuul.filters.endpoint.ProxyEndpoint [Salamander-ClientToZuulWorker-1] Error while connecting to origin, UUID {} a67f7871-d63f-43b4-bb7b-2f03863e254a
java.lang.ClassCastException: com.netflix.loadbalancer.Server cannot be cast to com.netflix.niws.loadbalancer.DiscoveryEnabledServer
	at com.netflix.zuul.discovery.DynamicServerResolver.resolve(DynamicServerResolver.java:55) ~[zuul-discovery-2.3.0.jar:2.3.0]
	at com.netflix.zuul.discovery.DynamicServerResolver.resolve(DynamicServerResolver.java:41) ~[zuul-discovery-2.3.0.jar:2.3.0]
	at com.netflix.zuul.netty.connectionpool.DefaultClientChannelManager.acquire(DefaultClientChannelManager.java:328) ~[zuul-core-2.3.0.jar:2.3.0]
	at com.netflix.zuul.origins.BasicNettyOrigin.connectToOrigin(BasicNettyOrigin.java:122) ~[zuul-core-2.3.0.jar:2.3.0]
	at com.netflix.zuul.filters.endpoint.ProxyEndpoint.proxyRequestToOrigin(ProxyEndpoint.java:423) [zuul-core-2.3.0.jar:2.3.0]
	at com.netflix.zuul.filters.endpoint.ProxyEndpoint.apply(ProxyEndpoint.java:297) [zuul-core-2.3.0.jar:2.3.0]
	at com.netflix.zuul.filters.endpoint.ProxyEndpoint.apply(ProxyEndpoint.java:121) [zuul-core-2.3.0.jar:2.3.0]
	at com.netflix.zuul.netty.filter.BaseZuulFilterRunner.filter(BaseZuulFilterRunner.java:221) [zuul-core-2.3.0.jar:2.3.0]
	at com.netflix.zuul.netty.filter.ZuulEndPointRunner.filter(ZuulEndPointRunner.java:95) [zuul-core-2.3.0.jar:2.3.0]
	at com.netflix.zuul.netty.filter.ZuulEndPointRunner.filter(ZuulEndPointRunner.java:51) [zuul-core-2.3.0.jar:2.3.0]
	at com.netflix.zuul.netty.filter.BaseZuulFilterRunner.invokeNextStage(BaseZuulFilterRunner.java:144) [zuul-core-2.3.0.jar:2.3.0]
	at com.netflix.zuul.netty.filter.ZuulFilterChainRunner.runFilters(ZuulFilterChainRunner.java:88) [zuul-core-2.3.0.jar:2.3.0]
	at com.netflix.zuul.netty.filter.ZuulFilterChainRunner.filter(ZuulFilterChainRunner.java:56) [zuul-core-2.3.0.jar:2.3.0]
	at com.netflix.zuul.netty.filter.ZuulFilterChainHandler.channelRead(ZuulFilterChainHandler.java:81) [zuul-core-2.3.0.jar:2.3.0]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at com.netflix.zuul.netty.server.ClientRequestReceiver.channelReadInternal(ClientRequestReceiver.java:168) [zuul-core-2.3.0.jar:2.3.0]
	at com.netflix.zuul.netty.server.ClientRequestReceiver.channelRead(ClientRequestReceiver.java:115) [zuul-core-2.3.0.jar:2.3.0]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.handler.logging.LoggingHandler.channelRead(LoggingHandler.java:271) [netty-handler-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at com.netflix.netty.common.proxyprotocol.StripUntrustedProxyHeadersHandler.channelRead(StripUntrustedProxyHeadersHandler.java:93) [zuul-core-2.3.0.jar:2.3.0]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at com.netflix.netty.common.accesslog.AccessLogChannelHandler$AccessLogInboundChannelHandler.channelRead(AccessLogChannelHandler.java:71) [zuul-core-2.3.0.jar:2.3.0]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at com.netflix.netty.common.metrics.HttpBodySizeRecordingChannelHandler$InboundChannelHandler.channelRead(HttpBodySizeRecordingChannelHandler.java:85) [zuul-core-2.3.0.jar:2.3.0]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at com.netflix.netty.common.HttpServerLifecycleChannelHandler$HttpServerLifecycleInboundChannelHandler.channelRead(HttpServerLifecycleChannelHandler.java:43) [zuul-core-2.3.0.jar:2.3.0]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at com.netflix.netty.common.HttpRequestReadTimeoutHandler.channelRead(HttpRequestReadTimeoutHandler.java:78) [zuul-core-2.3.0.jar:2.3.0]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at com.netflix.zuul.netty.insights.PassportStateHttpServerHandler$InboundHandler.channelRead(PassportStateHttpServerHandler.java:70) [zuul-core-2.3.0.jar:2.3.0]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324) [netty-codec-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296) [netty-codec-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at com.netflix.netty.common.throttle.MaxInboundConnectionsHandler.channelRead(MaxInboundConnectionsHandler.java:83) [zuul-core-2.3.0.jar:2.3.0]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at com.netflix.netty.common.proxyprotocol.ElbProxyProtocolChannelHandler.channelRead(ElbProxyProtocolChannelHandler.java:62) [zuul-core-2.3.0.jar:2.3.0]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) [netty-handler-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:795) [netty-transport-native-epoll-4.1.63.Final-linux-x86_64.jar:4.1.63.Final]
	at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:480) [netty-transport-native-epoll-4.1.63.Final-linux-x86_64.jar:4.1.63.Final]
	at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378) [netty-transport-native-epoll-4.1.63.Final-linux-x86_64.jar:4.1.63.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) [netty-common-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.63.Final.jar:4.1.63.Final]
	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_292]
2021-06-10 10:29:14,497 WARN  com.netflix.zuul.filters.endpoint.ProxyEndpoint [Salamander-ClientToZuulWorker-1] FAILURE_LOCAL, origin = OriginName{niwsClientName='example', target='example', authority='example', authorityTrusted=false}, origin channel info = 
java.lang.ClassCastException: com.netflix.loadbalancer.Server cannot be cast to com.netflix.niws.loadbalancer.DiscoveryEnabledServer
	at com.netflix.zuul.discovery.DynamicServerResolver.resolve(DynamicServerResolver.java:55) ~[zuul-discovery-2.3.0.jar:2.3.0]
	at com.netflix.zuul.discovery.DynamicServerResolver.resolve(DynamicServerResolver.java:41) ~[zuul-discovery-2.3.0.jar:2.3.0]
	at com.netflix.zuul.netty.connectionpool.DefaultClientChannelManager.acquire(DefaultClientChannelManager.java:328) ~[zuul-core-2.3.0.jar:2.3.0]
	at com.netflix.zuul.origins.BasicNettyOrigin.connectToOrigin(BasicNettyOrigin.java:122) ~[zuul-core-2.3.0.jar:2.3.0]
	at com.netflix.zuul.filters.endpoint.ProxyEndpoint.proxyRequestToOrigin(ProxyEndpoint.java:423) [zuul-core-2.3.0.jar:2.3.0]
	at com.netflix.zuul.filters.endpoint.ProxyEndpoint.apply(ProxyEndpoint.java:297) [zuul-core-2.3.0.jar:2.3.0]
	at com.netflix.zuul.filters.endpoint.ProxyEndpoint.apply(ProxyEndpoint.java:121) [zuul-core-2.3.0.jar:2.3.0]
	at com.netflix.zuul.netty.filter.BaseZuulFilterRunner.filter(BaseZuulFilterRunner.java:221) [zuul-core-2.3.0.jar:2.3.0]
	at com.netflix.zuul.netty.filter.ZuulEndPointRunner.filter(ZuulEndPointRunner.java:95) [zuul-core-2.3.0.jar:2.3.0]
	at com.netflix.zuul.netty.filter.ZuulEndPointRunner.filter(ZuulEndPointRunner.java:51) [zuul-core-2.3.0.jar:2.3.0]
	at com.netflix.zuul.netty.filter.BaseZuulFilterRunner.invokeNextStage(BaseZuulFilterRunner.java:144) [zuul-core-2.3.0.jar:2.3.0]
	at com.netflix.zuul.netty.filter.ZuulFilterChainRunner.runFilters(ZuulFilterChainRunner.java:88) [zuul-core-2.3.0.jar:2.3.0]
	at com.netflix.zuul.netty.filter.ZuulFilterChainRunner.filter(ZuulFilterChainRunner.java:56) [zuul-core-2.3.0.jar:2.3.0]
	at com.netflix.zuul.netty.filter.ZuulFilterChainHandler.channelRead(ZuulFilterChainHandler.java:81) [zuul-core-2.3.0.jar:2.3.0]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at com.netflix.zuul.netty.server.ClientRequestReceiver.channelReadInternal(ClientRequestReceiver.java:168) [zuul-core-2.3.0.jar:2.3.0]
	at com.netflix.zuul.netty.server.ClientRequestReceiver.channelRead(ClientRequestReceiver.java:115) [zuul-core-2.3.0.jar:2.3.0]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.handler.logging.LoggingHandler.channelRead(LoggingHandler.java:271) [netty-handler-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at com.netflix.netty.common.proxyprotocol.StripUntrustedProxyHeadersHandler.channelRead(StripUntrustedProxyHeadersHandler.java:93) [zuul-core-2.3.0.jar:2.3.0]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at com.netflix.netty.common.accesslog.AccessLogChannelHandler$AccessLogInboundChannelHandler.channelRead(AccessLogChannelHandler.java:71) [zuul-core-2.3.0.jar:2.3.0]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at com.netflix.netty.common.metrics.HttpBodySizeRecordingChannelHandler$InboundChannelHandler.channelRead(HttpBodySizeRecordingChannelHandler.java:85) [zuul-core-2.3.0.jar:2.3.0]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at com.netflix.netty.common.HttpServerLifecycleChannelHandler$HttpServerLifecycleInboundChannelHandler.channelRead(HttpServerLifecycleChannelHandler.java:43) [zuul-core-2.3.0.jar:2.3.0]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at com.netflix.netty.common.HttpRequestReadTimeoutHandler.channelRead(HttpRequestReadTimeoutHandler.java:78) [zuul-core-2.3.0.jar:2.3.0]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at com.netflix.zuul.netty.insights.PassportStateHttpServerHandler$InboundHandler.channelRead(PassportStateHttpServerHandler.java:70) [zuul-core-2.3.0.jar:2.3.0]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324) [netty-codec-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296) [netty-codec-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at com.netflix.netty.common.throttle.MaxInboundConnectionsHandler.channelRead(MaxInboundConnectionsHandler.java:83) [zuul-core-2.3.0.jar:2.3.0]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at com.netflix.netty.common.proxyprotocol.ElbProxyProtocolChannelHandler.channelRead(ElbProxyProtocolChannelHandler.java:62) [zuul-core-2.3.0.jar:2.3.0]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) [netty-handler-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) [netty-transport-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:795) [netty-transport-native-epoll-4.1.63.Final-linux-x86_64.jar:4.1.63.Final]
	at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:480) [netty-transport-native-epoll-4.1.63.Final-linux-x86_64.jar:4.1.63.Final]
	at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378) [netty-transport-native-epoll-4.1.63.Final-linux-x86_64.jar:4.1.63.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) [netty-common-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.63.Final.jar:4.1.63.Final]
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.63.Final.jar:4.1.63.Final]
	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_292]
2021-06-10 10:29:14,501 WARN  com.netflix.zuul.netty.server.ClientResponseWriter [Salamander-ClientToZuulWorker-1] Writing response to client channel before have received the LastContent of request! uri=http://localhost:8887/example, method=get, clientip=0:0:0:0:0:0:0:1, Channel: [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 - R:/0:0:0:0:0:0:0:1%0:33042], active=true, open=true, registered=true, writable=true, id=72396c28, Passport: CurrentPassport {start_ms=1623295752014, [+0=SERVER_CH_ACTIVE, +977041=IN_REQ_HEADERS_RECEIVED, +1393605=FILTERS_INBOUND_START, +1646898=FILTERS_INBOUND_END, +2487748390=FILTERS_OUTBOUND_START, +2487822400=FILTERS_OUTBOUND_END, +2487916792=NOW]}
2021-06-10 10:29:14,502 INFO  zuul.server.nettylog [Salamander-ClientToZuulWorker-1] [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 - R:/0:0:0:0:0:0:0:1%0:33042] WRITE: DefaultHttpResponse(decodeResult: success, version: HTTP/1.1)
HTTP/1.1 500 Internal Server Error
transfer-encoding: chunked
Connection: close
2021-06-10 10:29:14,502 INFO  zuul.server.nettylog [Salamander-ClientToZuulWorker-1] [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 - R:/0:0:0:0:0:0:0:1%0:33042] WRITE, DefaultLastHttpContent(data: UnpooledByteBufAllocator$InstrumentedUnpooledUnsafeHeapByteBuf(ridx: 0, widx: 0, cap: 0), decoderResult: success), 0B
2021-06-10 10:29:14,502 INFO  zuul.server.nettylog [Salamander-ClientToZuulWorker-1] [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 - R:/0:0:0:0:0:0:0:1%0:33042] FLUSH
2021-06-10 10:29:14,503 INFO  ACCESS [Salamander-ClientToZuulWorker-1] 2021-06-10T10:29:12.015	0:0:0:0:0:0:0:1	8887	GET	/example	500	2488039	-	a67f7871-d63f-43b4-bb7b-2f03863e254a	-	"localhost:8887"	"-"	"-"	"-"	"-"	"curl/7.77.0"	"-"	"-"	"-"
2021-06-10 10:29:14,503 INFO  zuul.server.nettylog [Salamander-ClientToZuulWorker-1] [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 - R:/0:0:0:0:0:0:0:1%0:33042] USER_EVENT: com.netflix.netty.common.HttpLifecycleChannelHandler$CompleteEvent@697465be
2021-06-10 10:29:14,503 INFO  zuul.server.nettylog [Salamander-ClientToZuulWorker-1] [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 - R:/0:0:0:0:0:0:0:1%0:33042] CLOSE
2021-06-10 10:29:14,504 INFO  zuul.server.nettylog [Salamander-ClientToZuulWorker-1] [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 ! R:/0:0:0:0:0:0:0:1%0:33042] READ, EmptyLastHttpContent, 0B
2021-06-10 10:29:14,504 INFO  zuul.server.nettylog [Salamander-ClientToZuulWorker-1] [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 ! R:/0:0:0:0:0:0:0:1%0:33042] READ COMPLETE
2021-06-10 10:29:14,504 INFO  zuul.server.nettylog [Salamander-ClientToZuulWorker-1] [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 ! R:/0:0:0:0:0:0:0:1%0:33042] INACTIVE
2021-06-10 10:29:14,504 INFO  zuul.server.nettylog [Salamander-ClientToZuulWorker-1] [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 ! R:/0:0:0:0:0:0:0:1%0:33042] CLOSE
2021-06-10 10:29:14,504 INFO  zuul.server.nettylog [Salamander-ClientToZuulWorker-1] [id: 0x72396c28, L:/0:0:0:0:0:0:0:1%0:8887 ! R:/0:0:0:0:0:0:0:1%0:33042] UNREGISTERED

Bootstrap.java

public class Bootstrap {

    public static void main(String[] args) {
        new Bootstrap().start();
    }

    public void start() {
        System.out.println("Zuul Sample: starting up.");
        long startTime = System.currentTimeMillis();
        int exitCode = 0;

        Server server = null;

        try {
            Injector injector = Guice.createInjector(new ZuulSampleModule());
            BaseServerStartup serverStartup = injector.getInstance(BaseServerStartup.class);
            server = serverStartup.server();

            long startupDuration = System.currentTimeMillis() - startTime;
            System.out.println("Zuul Sample: finished startup. Duration = " + startupDuration + " ms");

            server.start();
            server.awaitTermination();
        }
        catch (Throwable t) {
            t.printStackTrace();
            System.err.println("###############");
            System.err.println("Zuul Sample: initialization failed. Forcing shutdown now.");
            System.err.println("###############");
            exitCode = 1;
        }
        finally {
            // server shutdown
            if (server != null) server.stop();

            System.exit(exitCode);
        }
    }
}

SampleServerStartup.java


@Singleton
public class SampleServerStartup extends BaseServerStartup {

    enum ServerType {
        HTTP,
        HTTP2,
        HTTP_MUTUAL_TLS,
    }

    private static final String[] WWW_PROTOCOLS = new String[]{"TLSv1.2", "TLSv1.1", "TLSv1", "SSLv3"};
    private static final ServerType SERVER_TYPE = ServerType.HTTP;

    @Inject
    public SampleServerStartup(ServerStatusManager serverStatusManager, FilterLoader filterLoader,
                               SessionContextDecorator sessionCtxDecorator, FilterUsageNotifier usageNotifier,
                               RequestCompleteHandler reqCompleteHandler, Registry registry,
                               DirectMemoryMonitor directMemoryMonitor, EventLoopGroupMetrics eventLoopGroupMetrics,
                               ApplicationInfoManager applicationInfoManager,
                               AccessLogPublisher accessLogPublisher) {
        super(serverStatusManager, filterLoader, sessionCtxDecorator, usageNotifier, reqCompleteHandler, registry,
                directMemoryMonitor, eventLoopGroupMetrics, null, applicationInfoManager,
                accessLogPublisher);
    }

    @Override
    protected Map<NamedSocketAddress, ChannelInitializer<?>> chooseAddrsAndChannels(ChannelGroup clientChannels) {
        Map<NamedSocketAddress, ChannelInitializer<?>> addrsToChannels = new HashMap<>();
        SocketAddress sockAddr;
        String metricId;
        {
            @Deprecated
            int port = new DynamicIntProperty("zuul.server.port.main", 8887).get();
            sockAddr = new SocketAddressProperty("zuul.server.addr.main", "=" + port).getValue();
            if (sockAddr instanceof InetSocketAddress) {
                metricId = String.valueOf(((InetSocketAddress) sockAddr).getPort());
            } else {
                // Just pick something.   This would likely be a UDS addr or a LocalChannel addr.
                metricId = sockAddr.toString();
            }
        }

        String mainListenAddressName = "main";
        ServerSslConfig sslConfig;
        ChannelConfig channelConfig = defaultChannelConfig(mainListenAddressName);
        ChannelConfig channelDependencies = defaultChannelDependencies(mainListenAddressName);

        /* These settings may need to be tweaked depending if you're running behind an ELB HTTP listener, TCP listener,
         * or directly on the internet.
         */
        switch (SERVER_TYPE) {
            /* The below settings can be used when running behind an ELB HTTP listener that terminates SSL for you
             * and passes XFF headers.
             */
            case HTTP:
                channelConfig.set(CommonChannelConfigKeys.allowProxyHeadersWhen, StripUntrustedProxyHeadersHandler.AllowWhen.ALWAYS);
                channelConfig.set(CommonChannelConfigKeys.preferProxyProtocolForClientIp, false);
                channelConfig.set(CommonChannelConfigKeys.isSSlFromIntermediary, false);
                channelConfig.set(CommonChannelConfigKeys.withProxyProtocol, false);

                addrsToChannels.put(
                        new NamedSocketAddress("http", sockAddr),
                        new ZuulServerChannelInitializer(
                                metricId, channelConfig, channelDependencies, clientChannels));
                logAddrConfigured(sockAddr);
                break;

            /* The below settings can be used when running behind an ELB TCP listener with proxy protocol, terminating
             * SSL in Zuul.
             */
            case HTTP2:
                sslConfig = ServerSslConfig.withDefaultCiphers(
                        loadFromResources("server.cert"),
                        loadFromResources("server.key"),
                        WWW_PROTOCOLS);

                channelConfig.set(CommonChannelConfigKeys.allowProxyHeadersWhen, StripUntrustedProxyHeadersHandler.AllowWhen.NEVER);
                channelConfig.set(CommonChannelConfigKeys.preferProxyProtocolForClientIp, true);
                channelConfig.set(CommonChannelConfigKeys.isSSlFromIntermediary, false);
                channelConfig.set(CommonChannelConfigKeys.serverSslConfig, sslConfig);
                channelConfig.set(CommonChannelConfigKeys.sslContextFactory, new BaseSslContextFactory(registry, sslConfig));

                addHttp2DefaultConfig(channelConfig, mainListenAddressName);

                addrsToChannels.put(
                        new NamedSocketAddress("http2", sockAddr),
                        new Http2SslChannelInitializer(
                                metricId, channelConfig, channelDependencies, clientChannels));
                logAddrConfigured(sockAddr, sslConfig);
                break;

            /* The below settings can be used when running behind an ELB TCP listener with proxy protocol, terminating
             * SSL in Zuul.
             *
             * Can be tested using certs in resources directory:
             *  curl https://localhost:7001/test -vk --cert src/main/resources/ssl/client.cert:zuul123 --key src/main/resources/ssl/client.key
             */
            case HTTP_MUTUAL_TLS:
                sslConfig = new ServerSslConfig(
                        WWW_PROTOCOLS,
                        ServerSslConfig.getDefaultCiphers(),
                        loadFromResources("server.cert"),
                        loadFromResources("server.key"),
                        ClientAuth.REQUIRE,
                        loadFromResources("truststore.jks"),
                        loadFromResources("truststore.key"),
                        false);

                channelConfig.set(CommonChannelConfigKeys.allowProxyHeadersWhen, StripUntrustedProxyHeadersHandler.AllowWhen.NEVER);
                channelConfig.set(CommonChannelConfigKeys.preferProxyProtocolForClientIp, true);
                channelConfig.set(CommonChannelConfigKeys.isSSlFromIntermediary, false);
                channelConfig.set(CommonChannelConfigKeys.withProxyProtocol, true);
                channelConfig.set(CommonChannelConfigKeys.serverSslConfig, sslConfig);
                channelConfig.set(CommonChannelConfigKeys.sslContextFactory, new BaseSslContextFactory(registry, sslConfig));

                addrsToChannels.put(
                        new NamedSocketAddress("http_mtls", sockAddr),
                        new Http1MutualSslChannelInitializer(
                                metricId, channelConfig, channelDependencies, clientChannels));
                logAddrConfigured(sockAddr, sslConfig);
                break;
        }

        return Collections.unmodifiableMap(addrsToChannels);
    }


    private File loadFromResources(String s) {
        return new File(ClassLoader.getSystemResource("ssl/" + s).getFile());
    }
}

ZuulSampleModule.java

public class ZuulSampleModule extends AbstractModule {
    @Override
    protected void configure() {
        try {
            ConfigurationManager.loadCascadedPropertiesFromResources("application");
        } catch (Exception ex) {
            throw new RuntimeException("Error loading configuration: " + ex.getMessage(), ex);
        }

        bind(AbstractConfiguration.class).toInstance(ConfigurationManager.getConfigInstance());
        bind(DynamicCodeCompiler.class).to(GroovyCompiler.class);
        bind(FilenameFilter.class).to(GroovyFileFilter.class);

//        install(new EurekaModule());

        // sample specific bindings
        bind(BaseServerStartup.class).to(SampleServerStartup.class);

        // use provided basic netty origin manager
        bind(OriginManager.class).to(BasicNettyOriginManager.class);

        // zuul filter loading
        install(new ZuulFiltersModule());
        bind(FilterLoader.class).to(DynamicFilterLoader.class);
        bind(FilterRegistry.class).to(MutableFilterRegistry.class);
        bind(FilterFileManager.class).asEagerSingleton();


        // general server bindings
        bind(ServerStatusManager.class); // health/discovery status
        bind(SessionContextDecorator.class).to(ZuulSessionContextDecorator.class); // decorate new sessions when requests come in
        bind(Registry.class).to(DefaultRegistry.class); // atlas metrics registry
        bind(RequestCompleteHandler.class).to(BasicRequestCompleteHandler.class); // metrics post-request completion
        bind(RequestMetricsPublisher.class).to(BasicRequestMetricsPublisher.class); // timings publisher

        // access logger, including request ID generator
        bind(AccessLogPublisher.class).toInstance(new AccessLogPublisher("ACCESS",
                (channel, httpRequest) -> ClientRequestReceiver.getRequestFromChannel(channel).getContext().getUUID()));
    }
}

application.properties

zuul.filters.root=src/main/groovy/zuul2/filters
zuul.filters.locations=${zuul.filters.root}/inbound,${zuul.filters.root}/outbound,${zuul.filters.root}/endpoint
zuul.filters.packages=com.netflix.zuul.filters.common

example.ribbon.listOfServers=example.com:80
example.ribbon.client.NIWSServerListClassName=com.netflix.loadbalancer.ConfigurationBasedServerList

eureka.shouldFetchRegistry=false
eureka.validateInstanceId=false

I have tried search everywhere but couldn’t find any solution. Any idea how to make it working please?

Issue Analytics

  • State:open
  • Created 2 years ago
  • Reactions:4
  • Comments:7

github_iconTop GitHub Comments

3reactions
argha-ccommented, Jul 19, 2021

I believe the issue is with using ConfigurationBasedServerList as the ribbon load balancer. The 2.3.0 refactor to decouple Zuul’s discovery from ribbon’s load balancing, chooses to enforces a stricter type constraint.

If you intend to use the configuration based props file, suggested workaround would be to implement an adapter similar to com.netflix.niws.loadbalancer.DiscoveryEnabledNIWSServerList, with the server list supplied by the config file.

Sorry about the inconvenience.

0reactions
mohammadrafighcommented, Sep 6, 2021

@argha-c Thanks. Replacing ConfigurationBasedServerList with a custom adapter worked.

Read more comments on GitHub >

github_iconTop Results From Across the Web

API proxy configuration reference | Apigee Edge
Defines how the ProxyEndpoint reacts to an error. A fault rule specifies two items: A Condition that specifies the fault to be handled...
Read more >
CORS Error Preflight Missing Allow Origin from redirect
I am getting a CORS error whenever I am trying to call the proxy endpoint ... I am sure that I have placed...
Read more >
API proxy configuration reference | Apigee X - Google Cloud
Defines how the ProxyEndpoint reacts to an error. A fault rule specifies two items: A Condition that specifies the fault to be handled...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found