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

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

Open
yunki12 opened this issue Feb 19, 2024 · 4 comments
Assignees

Comments

@yunki12
Copy link

yunki12 commented Feb 19, 2024

현재 프로젝트가 아래 개발 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) [?:?]

@gunlee01 gunlee01 self-assigned this Feb 22, 2024
@bumworld
Copy link

bumworld commented Apr 2, 2024

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

Java 17
Spring Boot 3.2
WebClient

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

@bumworld
Copy link

bumworld commented Apr 2, 2024

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()로 변경하면 되는듯 한데..

@rdcamel
Copy link

rdcamel commented Apr 15, 2024

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

@kyongbok
Copy link

kyongbok commented Aug 9, 2024

2.17을 쓰면 되네요.

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

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

5 participants