apache / apache/servicecomb-java-chassis

RPC接口调用出现类无法找到:Could not initialize class rx.Observable

未关闭
#3,722 5 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Java
星标
1.9k
派生
814
平均合并
8 天 23 小时
30 天内合并 PR
1

描述

我尝试通过rpc调用时出现如下异常,不知道rx.Observable是什么,请问这是哪里缺少了东西么?重启微服务可规避,目前已出现两次,均出现在补丁升级后。
2023-03-16 13:26:18,953Z | ERROR | pcs-182 | InvokerUtils | 46 - ioei-rpcservice - 2023.315.941.44 | |||protocol:null||org.apache.servicecomb.core.provider.consumer.InvokerUtils.innerSyncInvoke(InvokerUtils.java:80) | Msg: invoke failed, IoVehicle.apiAuthQueryService.queryApiCertCNameAuthStatus
java.lang.NoClassDefFoundError: Could not initialize class rx.Observable
at com.netflix.loadbalancer.reactive.LoadBalancerCommand.selectServer(LoadBalancerCommand.java:180) ~[46:ioei-rpcservice:2023.315.941.44]
at com.netflix.loadbalancer.reactive.LoadBalancerCommand.submit(LoadBalancerCommand.java:276) ~[46:ioei-rpcservice:2023.315.941.44]
at org.apache.servicecomb.loadbalance.LoadbalanceHandler.sendWithRetry(LoadbalanceHandler.java:303) ~[46:ioei-rpcservice:2023.315.941.44]
at org.apache.servicecomb.loadbalance.LoadbalanceHandler.handle(LoadbalanceHandler.java:184) ~[46:ioei-rpcservice:2023.315.941.44]
at org.apache.servicecomb.core.Invocation.next(Invocation.java:151) ~[46:ioei-rpcservice:2023.315.941.44]
at org.apache.servicecomb.core.provider.consumer.InvokerUtils.innerSyncInvoke(InvokerUtils.java:72) ~[46:ioei-rpcservice:2023.315.941.44]
at org.apache.servicecomb.provider.pojo.Invoker.syncInvoke(Invoker.java:161) ~[46:ioei-rpcservice:2023.315.941.44]
at org.apache.servicecomb.provider.pojo.Invoker.invoke(Invoker.java:157) ~[46:ioei-rpcservice:2023.315.941.44]
at com.xxx.jsf.invocation.PaaSInvoker.invoke(PaaSInvoker.java:21) ~[46:ioei-rpcservice:2023.315.941.44]
at com.sun.proxy.$Proxy311.queryApiCertCNameAuthStatus(Unknown Source) ~[46:ioei-rpcservice:2023.315.941.44]
at com.xxx.rpcservice.iovehicle.VehicleApiAuthQueryService.queryApiCertCNameAuthStatus(VehicleApiAuthQueryService.java:34) ~[46:ioei-rpcservice:2023.315.941.44]
at com.xxxx.vehicle.service.rpc.VehicleAuthService.isValidCertCname(VehicleAuthService.java:28) ~[?:?]
at com.xxxx.plugin.service.activation.process.ChoiceProcessor.process(ChoiceProcessor.java:92) ~[?:?]
at org.apache.camel.processor.DelegateSyncProcessor.process(DelegateSyncProcessor.java:63) ~[?:?]
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201) ~[?:?]
at org.apache.camel.processor.Pipeline.process(Pipeline.java:138) ~[?:?]
at org.apache.camel.processor.Pipeline.process(Pipeline.java:101) ~[?:?]
at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:113) ~[?:?]
at org.apache.camel.processor.TryProcessor.process(TryProcessor.java:84) ~[?:?]
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201) ~[?:?]
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201) ~[?:?]
at org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:76) ~[?:?]
at org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:186) ~[?:?]
at org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:86) ~[?:?]
at org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:541) ~[?:?]
at org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:506) ~[?:?]
at org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:369) ~[?:?]
at org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:506) ~[?:?]
at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:213) ~[?:?]
at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:139) ~[?:?]
at org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:125) ~[?:?]
at com.xxx.service.common.cxf.CamelService$1.lambda$null$0(CamelService.java:75) ~[?:?]

贡献指南

这个仓库没有索引到贡献指南

调研方向

从 rx.Observable 处的失败以及引用的 LoadBalancerCommand.selectServer、LoadbalanceHandler.sendWithRetry 和 InvokerUtils.innerSyncInvoke 堆栈帧开始。检查补丁升级如何改变 RPC 服务的运行时依赖和类初始化。完成的标准是:报告的 RPC 调用在升级后不再因 NoClassDefFoundError 失败;如果项目提供可复现的测试,则应使用该测试覆盖此失败。

由索引模型根据 Issue 内容生成。

评估

技术栈
java
领域
backend, distributed-systems
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
需要澄清
新手友好度
25/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。