nacos-group / r-nacos

Nacos server re-implemented in Rust.
https://r-nacos.github.io/docs/
Apache License 2.0
810 stars 86 forks source link

/nacos/v1/ns/instance/beat exception #13

Closed Chairo closed 1 year ago

Chairo commented 1 year ago

docker 启动

nacos-client:1.4.6

心跳返回restResult.getData()是个对象,直接(String)restResult.getData();报错

10:48:19.536 [com.alibaba.nacos.naming.beat.sender] DEBUG com.alibaba.nacos.client.naming:476 [] - HTTP method: PUT, url: http://xxxxxx:8850/nacos/v1/ns/instance/beat?app=api-service&serviceName=dev%40%40api-service&namespaceId=public&port=7066&clusterName=DEFAULT&ip=xxxxxx, body: {beat={"port":7066,"ip":"xxxxxxx","weight":1.0,"serviceName":"dev@@api-service","cluster":"DEFAULT","metadata":{"preserved.register.source":"SPRING_CLOUD"},"scheduled":false,"period":5000,"stopped":false}} 10:48:19.566 [com.alibaba.nacos.naming.beat.sender] ERROR com.alibaba.nacos.client.naming:201 [] - [CLIENT-BEAT] failed to send beat: {"port":7066,"ip":"xxxxxxx","weight":1.0,"serviceName":"dev@@api-service","cluster":"DEFAULT","metadata":{"preserved.register.source":"SPRING_CLOUD"},"scheduled":false,"period":5000,"stopped":false}, unknown exception msg: errCode: 101, errMsg: Nacos deserialize failed.
com.alibaba.nacos.api.exception.runtime.NacosDeserializationException: errCode: 101, errMsg: Nacos deserialize failed.
at com.alibaba.nacos.common.utils.JacksonUtils.toObj(JacksonUtils.java:227) at com.alibaba.nacos.client.naming.net.NamingProxy.sendBeat(NamingProxy.java:443) at com.alibaba.nacos.client.naming.beat.BeatReactor$BeatTask.run(BeatReactor.java:166) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266) at java.util.concurrent.FutureTask.run(FutureTask.java) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750) Caused by: com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'ok': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false') at [Source: (String)"ok"; line: 1, column: 3] at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:2391) at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:745) at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._reportInvalidToken(ReaderBasedJsonParser.java:2961) at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddValue(ReaderBasedJsonParser.java:2002) at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:802) at com.fasterxml.jackson.databind.ObjectMapper._readTreeAndClose(ObjectMapper.java:4703) at com.fasterxml.jackson.databind.ObjectMapper.readTree(ObjectMapper.java:3076) at com.alibaba.nacos.common.utils.JacksonUtils.toObj(JacksonUtils.java:225) ... 10 common frames omitted

heqingpan commented 1 year ago

看日志应该是反回的ok不能转化成json对象。

我晚上下班回去确认后再修复

heqingpan commented 1 year ago

刚看了nacos代码这个返回值和nacos openapi 的定义,发现两者不一致。

应该是后面版本有更新过,然后openapi接口定义没改。

我今天晚上回去再修复。

heqingpan commented 1 year ago
image

image

我这边用1.4.6版本没能复现。

我先按你上面给的报错信息与java nacos 实现逻辑改一版,后面你有空的话可以再帮忙确认下。

heqingpan commented 1 year ago

最新版本v0.3.3已修复