scouter icon indicating copy to clipboard operation
scouter copied to clipboard

java.lang.NoSuchMethodError: 'int org.springframework.http.client.reactive.ClientHttpResponse.getRawStatusCode()' 오류 문의

Open yunki12 opened this issue 1 year ago • 4 comments

현재 프로젝트가 아래 개발 Spec으로 되어 있는데 Spring Batch에서 WebClient로 API로 요청시 아래 오류가 발생하면서 API에서 응답을 주지 않아 Spring Batch에서 계속 대기 중인 상태로 빠지게 됩니다. 버전 이슈 같은데 패치 가능 할까요?

Java 17 Spring Boot 3.2 WebClient

20240219 18:43:20 [NONE] LoadJarBytes scouter.httpclient 7451 bytes [2024-02-19 18:43:21] WARN reactor.core.Exceptions(Loggers.java:304) - throwIfFatal detected a jvm fatal exception, which is thrown and logged below: java.lang.NoSuchMethodError: 'int org.springframework.http.client.reactive.ClientHttpResponse.getRawStatusCode()' at scouter.xtra.httpclient.WebClient.getResponseStatusCode(WebClient.java:50) ~[?:?] at scouter.agent.trace.api.ForWebClient.processEnd(ForWebClient.java:116) ~[?:?] at scouter.agent.trace.api.ApiCallTraceHelper.webClientProcessEnd(ApiCallTraceHelper.java:97) ~[?:?] at scouter.agent.trace.TraceApiCall.endWebClientApicall(TraceApiCall.java:364) ~[?:?] at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.logResponse(ExchangeFunctions.java) ~[spring-webflux-6.1.1.jar!/:6.1.1] at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$exchange$6(ExchangeFunctions.java:108) ~[spring-webflux-6.1.1.jar!/:6.1.1] at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:106) [reactor-core-3.6.0.jar!/:3.6.0] at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) [reactor-core-3.6.0.jar!/:3.6.0] at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:200) [reactor-core-3.6.0.jar!/:3.6.0] at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:200) [reactor-core-3.6.0.jar!/:3.6.0] at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:200) [reactor-core-3.6.0.jar!/:3.6.0] at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) [reactor-core-3.6.0.jar!/:3.6.0] at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onNext(MonoFlatMapMany.java:250) [reactor-core-3.6.0.jar!/:3.6.0] at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) [reactor-core-3.6.0.jar!/:3.6.0] at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2571) [reactor-core-3.6.0.jar!/:3.6.0] at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.request(FluxContextWrite.java:136) [reactor-core-3.6.0.jar!/:3.6.0] at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onSubscribeInner(MonoFlatMapMany.java:150) [reactor-core-3.6.0.jar!/:3.6.0] at reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onSubscribe(MonoFlatMapMany.java:245) [reactor-core-3.6.0.jar!/:3.6.0] at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onSubscribe(FluxContextWrite.java:101) [reactor-core-3.6.0.jar!/:3.6.0] at reactor.core.publisher.FluxJust.subscribe(FluxJust.java:68) [reactor-core-3.6.0.jar!/:3.6.0] at reactor.core.publisher.InternalFluxOperator.subscribe(InternalFluxOperator.java:68) [reactor-core-3.6.0.jar!/:3.6.0] at reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onNext(MonoFlatMapMany.java:195) [reactor-core-3.6.0.jar!/:3.6.0] at reactor.core.publisher.SerializedSubscriber.onNext(SerializedSubscriber.java:99) [reactor-core-3.6.0.jar!/:3.6.0] at reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onNext(FluxRetryWhen.java:177) [reactor-core-3.6.0.jar!/:3.6.0] at reactor.core.publisher.MonoCreate$DefaultMonoSink.success(MonoCreate.java:176) [reactor-core-3.6.0.jar!/:3.6.0] at reactor.netty.http.client.HttpClientConnect$HttpIOHandlerObserver.onStateChange(HttpClientConnect.java:435) [reactor-netty-http-1.1.13.jar!/:1.1.13] at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:710) [reactor-netty-core-1.1.13.jar!/:1.1.13] at reactor.netty.resources.DefaultPooledConnectionProvider$DisposableAcquire.onStateChange(DefaultPooledConnectionProvider.java:195) [reactor-netty-core-1.1.13.jar!/:1.1.13] at reactor.netty.resources.DefaultPooledConnectionProvider$PooledConnection.onStateChange(DefaultPooledConnectionProvider.java:456) [reactor-netty-core-1.1.13.jar!/:1.1.13] at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:703) [reactor-netty-http-1.1.13.jar!/:1.1.13] at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) [reactor-netty-core-1.1.13.jar!/:1.1.13] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) [netty-transport-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) [netty-transport-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) [netty-transport-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) [netty-codec-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) [netty-transport-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) [netty-transport-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) [netty-transport-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) [netty-transport-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) [netty-codec-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:333) [netty-codec-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:454) [netty-codec-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) [netty-codec-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) [netty-transport-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) [netty-transport-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) [netty-transport-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) [netty-transport-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1475) [netty-handler-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1338) [netty-handler-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1387) [netty-handler-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529) [netty-codec-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:468) [netty-codec-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:290) [netty-codec-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) [netty-transport-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) [netty-transport-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) [netty-transport-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) [netty-transport-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) [netty-transport-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) [netty-transport-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) [netty-transport-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800) [netty-transport-classes-epoll-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:509) [netty-transport-classes-epoll-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:407) [netty-transport-classes-epoll-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [netty-common-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.101.Final.jar!/:4.1.101.Final] at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.101.Final.jar!/:4.1.101.Final] at java.base/java.lang.Thread.run(Thread.java:840) [?:?]

yunki12 avatar Feb 19 '24 09:02 yunki12

저와 동일한 이슈를 가지고 계시네요. 운영 스펙도 동일합니다. ㅜ.ㅜ

Java 17 Spring Boot 3.2 WebClient

오랜만에 스카우터 적용해 보려고 하는데 해당 이슈로 장애 한번 맞고 중단한 상태 입니다. 단기간에 해결되기 어렵겠죠?

bumworld avatar Apr 02 '24 06:04 bumworld

default int getRawStatusCode() Deprecated, for removal: This API element is subject to removal in a future version. as of 6.0, in favor of getStatusCode(); scheduled for removal in 6.2

getStatusCode()로 변경하면 되는듯 한데..

bumworld avatar Apr 02 '24 08:04 bumworld

저도 동일 오류로 다음 release 버전을 기다리고 있는 상태입니다~!!(+ㅂ+)b

rdcamel avatar Apr 15 '24 04:04 rdcamel

2.17을 쓰면 되네요.

근데 문제를 제기해도 수정할 계획이 없는듯 ...

kyongbok avatar Aug 09 '24 05:08 kyongbok