Dubbo-go作为Provider时, RPC返回的结构体中如果包含指针字段, Java端无法正确解析
- Dominant language
- Go
- Stars
- 5k
- Forks
- 1k
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 31
Description
### Environment
- Server: Dubbo-go, v3.10
- Client: dubbo-spring-boot-starter, v3.2.5
- Protocol: dubbo
- Registry: Nacos, v2.2.2
### Issue description
Dubbo-go作为Provider, RPC接口返回结构体指针. 这个结构体内包含一个指针类型的字段.
Java Dubbo作为Consumer, 调用接口, 无法解析结果.
Provider端代码:
```
type TestService interface {
Test(ctx context.Context, req *Req) (*Resp, error)
}
type Resp struct {
Total *int64
}
```
Consumer端代码:
```
public interface TestService {
Resp test(Req request);
}
public class Resp implements Serializable {
private Long total;
public Long getTotal() {
return total;
}
public void setTotal(Long total) {
this.total = total;
}
}
```
### Logs
Click me to check logs
```
2023-09-01 14:49:26.344 WARN 44832 --- [nio-8090-exec-6] o.a.d.r.p.dubbo.DecodeableRpcResult : [DUBBO] Decode rpc result failed: com.github.yukinomiu.dubbo.api.Resp.total: com.alibaba.com.caucho.hessian.io.BasicDeserializer: unexpected object java.lang.String, dubbo version: 3.2.5, current host: 172.16.116.11, error code: 4-20. This may be caused by , go to https://dubbo.apache.org/faq/4/20 to find instructions.
com.alibaba.com.caucho.hessian.io.HessianFieldException: com.github.yukinomiu.dubbo.api.Resp.total: com.alibaba.com.caucho.hessian.io.BasicDeserializer: unexpected object java.lang.String
at com.alibaba.com.caucho.hessian.io.JavaDeserializer.logDeserializeError(JavaDeserializer.java:168) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:415) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:277) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:204) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObjectInstance(Hessian2Input.java:2848) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2175) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2104) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2148) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2104) ~[hessian-lite-3.2.13.jar:na]
at org.apache.dubbo.common.serialize.hessian2.Hessian2ObjectInput.readObject(Hessian2ObjectInput.java:109) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.common.serialize.hessian2.Hessian2ObjectInput.readObject(Hessian2ObjectInput.java:117) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.common.serialize.DefaultSerializationExceptionWrapper$ProxyObjectInput.readObject(DefaultSerializationExceptionWrapper.java:175) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.handleValue(DecodeableRpcResult.java:172) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:110) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:149) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.remoting.transport.DecodeHandler.decode(DecodeHandler.java:62) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:50) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:62) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.common.threadpool.ThreadlessExecutor$RunnableWrapper.run(ThreadlessExecutor.java:152) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.common.threadpool.ThreadlessExecutor.waitAndDrain(ThreadlessExecutor.java:77) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.AsyncRpcResult.get(AsyncRpcResult.java:205) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.protocol.AbstractInvoker.waitForResultIfSync(AbstractInvoker.java:287) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.protocol.AbstractInvoker.invoke(AbstractInvoker.java:190) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.listener.ListenerInvokerWrapper.invoke(ListenerInvokerWrapper.java:71) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.filter.RpcExceptionFilter.invoke(RpcExceptionFilter.java:41) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CallbackRegistrationInvoker.invoke(FilterChainBuilder.java:196) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.protocol.ReferenceCountInvokerWrapper.invoke(ReferenceCountInvokerWrapper.java:88) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invokeWithContext(AbstractClusterInvoker.java:383) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:80) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:344) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.router.RouterSnapshotFilter.invoke(RouterSnapshotFilter.java:46) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:108) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.support.MetricsClusterFilter.invoke(MetricsClusterFilter.java:56) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.protocol.dubbo.filter.FutureFilter.invoke(FutureFilter.java:52) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.spring.security.filter.ContextHolderParametersSelectedTransferFilter.invoke(ContextHolderParametersSelectedTransferFilter.java:41) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.metrics.filter.MetricsFilter.invoke(MetricsFilter.java:73) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.support.MetricsConsumerFilter.invoke(MetricsConsumerFilter.java:37) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.support.ConsumerClassLoaderFilter.invoke(ConsumerClassLoaderFilter.java:40) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.support.ConsumerContextFilter.invoke(ConsumerContextFilter.java:116) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CallbackRegistrationInvoker.invoke(FilterChainBuilder.java:196) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster$ClusterFilterInvoker.invoke(AbstractCluster.java:91) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker.invoke(MockClusterInvoker.java:103) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.support.wrapper.ScopeClusterInvoker.invoke(ScopeClusterInvoker.java:169) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.registry.client.migration.MigrationInvoker.invoke(MigrationInvoker.java:284) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.proxy.InvocationUtil.invoke(InvocationUtil.java:61) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:75) [dubbo-3.2.5.jar:3.2.5]
...
Caused by: com.alibaba.com.caucho.hessian.io.HessianProtocolException: com.alibaba.com.caucho.hessian.io.BasicDeserializer: unexpected object java.lang.String
at com.alibaba.com.caucho.hessian.io.AbstractDeserializer.error(AbstractDeserializer.java:131) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.AbstractDeserializer.readMap(AbstractDeserializer.java:111) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.AbstractDeserializer.readMap(AbstractDeserializer.java:119) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2123) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2104) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:411) ~[hessian-lite-3.2.13.jar:na]
... 111 common frames omitted
2023-09-01 14:49:26.386 WARN 44832 --- [nio-8090-exec-6] o.a.d.r.p.dubbo.DecodeableRpcResult : [DUBBO] Decode rpc result failed: com.github.yukinomiu.dubbo.api.Resp.total: com.alibaba.com.caucho.hessian.io.BasicDeserializer: unexpected object java.lang.String, dubbo version: 3.2.5, current host: 172.16.116.11, error code: 4-20. This may be caused by , go to https://dubbo.apache.org/faq/4/20 to find instructions.
com.alibaba.com.caucho.hessian.io.HessianFieldException: com.github.yukinomiu.dubbo.api.Resp.total: com.alibaba.com.caucho.hessian.io.BasicDeserializer: unexpected object java.lang.String
at com.alibaba.com.caucho.hessian.io.JavaDeserializer.logDeserializeError(JavaDeserializer.java:168) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:415) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:277) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:204) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObjectInstance(Hessian2Input.java:2848) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2175) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2104) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2148) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2104) ~[hessian-lite-3.2.13.jar:na]
at org.apache.dubbo.common.serialize.hessian2.Hessian2ObjectInput.readObject(Hessian2ObjectInput.java:109) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.common.serialize.hessian2.Hessian2ObjectInput.readObject(Hessian2ObjectInput.java:117) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.common.serialize.DefaultSerializationExceptionWrapper$ProxyObjectInput.readObject(DefaultSerializationExceptionWrapper.java:175) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.handleValue(DecodeableRpcResult.java:172) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:110) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:149) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.remoting.transport.DecodeHandler.decode(DecodeHandler.java:62) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:50) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:62) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.common.threadpool.ThreadlessExecutor$RunnableWrapper.run(ThreadlessExecutor.java:152) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.common.threadpool.ThreadlessExecutor.waitAndDrain(ThreadlessExecutor.java:77) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.AsyncRpcResult.get(AsyncRpcResult.java:205) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.protocol.AbstractInvoker.waitForResultIfSync(AbstractInvoker.java:287) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.protocol.AbstractInvoker.invoke(AbstractInvoker.java:190) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.listener.ListenerInvokerWrapper.invoke(ListenerInvokerWrapper.java:71) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.filter.RpcExceptionFilter.invoke(RpcExceptionFilter.java:41) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CallbackRegistrationInvoker.invoke(FilterChainBuilder.java:196) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.protocol.ReferenceCountInvokerWrapper.invoke(ReferenceCountInvokerWrapper.java:88) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invokeWithContext(AbstractClusterInvoker.java:383) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:80) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:344) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.router.RouterSnapshotFilter.invoke(RouterSnapshotFilter.java:46) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:108) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.support.MetricsClusterFilter.invoke(MetricsClusterFilter.java:56) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.protocol.dubbo.filter.FutureFilter.invoke(FutureFilter.java:52) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.spring.security.filter.ContextHolderParametersSelectedTransferFilter.invoke(ContextHolderParametersSelectedTransferFilter.java:41) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.metrics.filter.MetricsFilter.invoke(MetricsFilter.java:73) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.support.MetricsConsumerFilter.invoke(MetricsConsumerFilter.java:37) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.support.ConsumerClassLoaderFilter.invoke(ConsumerClassLoaderFilter.java:40) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.support.ConsumerContextFilter.invoke(ConsumerContextFilter.java:116) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CallbackRegistrationInvoker.invoke(FilterChainBuilder.java:196) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster$ClusterFilterInvoker.invoke(AbstractCluster.java:91) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker.invoke(MockClusterInvoker.java:103) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.support.wrapper.ScopeClusterInvoker.invoke(ScopeClusterInvoker.java:169) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.registry.client.migration.MigrationInvoker.invoke(MigrationInvoker.java:284) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.proxy.InvocationUtil.invoke(InvocationUtil.java:61) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:75) [dubbo-3.2.5.jar:3.2.5]
...
Caused by: com.alibaba.com.caucho.hessian.io.HessianProtocolException: com.alibaba.com.caucho.hessian.io.BasicDeserializer: unexpected object java.lang.String
at com.alibaba.com.caucho.hessian.io.AbstractDeserializer.error(AbstractDeserializer.java:131) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.AbstractDeserializer.readMap(AbstractDeserializer.java:111) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.AbstractDeserializer.readMap(AbstractDeserializer.java:119) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2123) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2104) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:411) ~[hessian-lite-3.2.13.jar:na]
... 111 common frames omitted
2023-09-01 14:49:26.393 WARN 44832 --- [nio-8090-exec-6] o.a.d.r.p.dubbo.DecodeableRpcResult : [DUBBO] Decode rpc result failed: com.github.yukinomiu.dubbo.api.Resp.total: com.alibaba.com.caucho.hessian.io.BasicDeserializer: unexpected object java.lang.String, dubbo version: 3.2.5, current host: 172.16.116.11, error code: 4-20. This may be caused by , go to https://dubbo.apache.org/faq/4/20 to find instructions.
com.alibaba.com.caucho.hessian.io.HessianFieldException: com.github.yukinomiu.dubbo.api.Resp.total: com.alibaba.com.caucho.hessian.io.BasicDeserializer: unexpected object java.lang.String
at com.alibaba.com.caucho.hessian.io.JavaDeserializer.logDeserializeError(JavaDeserializer.java:168) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:415) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:277) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:204) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObjectInstance(Hessian2Input.java:2848) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2175) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2104) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2148) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2104) ~[hessian-lite-3.2.13.jar:na]
at org.apache.dubbo.common.serialize.hessian2.Hessian2ObjectInput.readObject(Hessian2ObjectInput.java:109) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.common.serialize.hessian2.Hessian2ObjectInput.readObject(Hessian2ObjectInput.java:117) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.common.serialize.DefaultSerializationExceptionWrapper$ProxyObjectInput.readObject(DefaultSerializationExceptionWrapper.java:175) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.handleValue(DecodeableRpcResult.java:172) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:110) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:149) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.remoting.transport.DecodeHandler.decode(DecodeHandler.java:62) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:50) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:62) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.common.threadpool.ThreadlessExecutor$RunnableWrapper.run(ThreadlessExecutor.java:152) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.common.threadpool.ThreadlessExecutor.waitAndDrain(ThreadlessExecutor.java:77) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.AsyncRpcResult.get(AsyncRpcResult.java:205) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.protocol.AbstractInvoker.waitForResultIfSync(AbstractInvoker.java:287) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.protocol.AbstractInvoker.invoke(AbstractInvoker.java:190) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.listener.ListenerInvokerWrapper.invoke(ListenerInvokerWrapper.java:71) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.filter.RpcExceptionFilter.invoke(RpcExceptionFilter.java:41) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CallbackRegistrationInvoker.invoke(FilterChainBuilder.java:196) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.protocol.ReferenceCountInvokerWrapper.invoke(ReferenceCountInvokerWrapper.java:88) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invokeWithContext(AbstractClusterInvoker.java:383) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:80) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:344) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.router.RouterSnapshotFilter.invoke(RouterSnapshotFilter.java:46) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:108) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.support.MetricsClusterFilter.invoke(MetricsClusterFilter.java:56) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.protocol.dubbo.filter.FutureFilter.invoke(FutureFilter.java:52) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.spring.security.filter.ContextHolderParametersSelectedTransferFilter.invoke(ContextHolderParametersSelectedTransferFilter.java:41) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.metrics.filter.MetricsFilter.invoke(MetricsFilter.java:73) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.support.MetricsConsumerFilter.invoke(MetricsConsumerFilter.java:37) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.support.ConsumerClassLoaderFilter.invoke(ConsumerClassLoaderFilter.java:40) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.support.ConsumerContextFilter.invoke(ConsumerContextFilter.java:116) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CallbackRegistrationInvoker.invoke(FilterChainBuilder.java:196) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster$ClusterFilterInvoker.invoke(AbstractCluster.java:91) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker.invoke(MockClusterInvoker.java:103) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.support.wrapper.ScopeClusterInvoker.invoke(ScopeClusterInvoker.java:169) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.registry.client.migration.MigrationInvoker.invoke(MigrationInvoker.java:284) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.proxy.InvocationUtil.invoke(InvocationUtil.java:61) [dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:75) [dubbo-3.2.5.jar:3.2.5]
...
Caused by: com.alibaba.com.caucho.hessian.io.HessianProtocolException: com.alibaba.com.caucho.hessian.io.BasicDeserializer: unexpected object java.lang.String
at com.alibaba.com.caucho.hessian.io.AbstractDeserializer.error(AbstractDeserializer.java:131) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.AbstractDeserializer.readMap(AbstractDeserializer.java:111) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.AbstractDeserializer.readMap(AbstractDeserializer.java:119) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2123) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2104) ~[hessian-lite-3.2.13.jar:na]
at com.alibaba.com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:411) ~[hessian-lite-3.2.13.jar:na]
... 111 common frames omitted
2023-09-01 14:49:26.421 ERROR 44832 --- [nio-8090-exec-6] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.apache.dubbo.rpc.RpcException: Failed to invoke the method test in the service com.github.yukinomiu.dubbo.api.TestService. Tried 3 times of the providers [172.16.116.11:20000] (1/1) from the registry localhost:8848 on the consumer 172.16.116.11 using the dubbo version 3.2.5. Last error is: Failed to invoke remote method: test, provider: dubbo://172.16.116.11:20000/com.github.yukinomiu.dubbo.api.TestService?accesslog=&app.version=&application=dubbo-go-mini&auth=&background=false&bean.name=TestServiceImpl&category=providers,configurators,routers&cluster=failover&config.tracing=&dubbo=2.0.2&environment=&execute.limit=&execute.limit.rejected.handler=&executor-management-mode=isolation&export=true&file-cache=true&group=default&interface=com.github.yukinomiu.dubbo.api.TestService&loadbalance=random&max-server-recv-msg-size=4mib&max-server-send-msg-size=&metadata-type=local&methods=test&module=sample&nacos.category=providers&name=dubbo-go-mini&organization=dubbo-go&owner=dubbo-go¶m.sign=&path=/com.github.yukinomiu.dubbo.api.TestService&pid=44818&protocol=dubbo&qos.enable=true&qos.port=50000®istry=nacos®istry.role=3&release=dubbo-golang-3.0.4&retries=&revision=1.0.0&serialization=&service.filter=echo,metrics,token,accesslog,tps,generic_service,execute,pshutdown&side=provider&sticky=false&timeout=2000×tamp=1693550564&tps.limit.interval=&tps.limit.rate=&tps.limit.rejected.handler=&tps.limit.strategy=&tps.limiter=&unloadClusterRelated=false&version=1.0.0&warmup=, cause: org.apache.dubbo.remoting.RemotingException: com.alibaba.com.caucho.hessian.io.HessianFieldException: com.github.yukinomiu.dubbo.api.Resp.total: com.alibaba.com.caucho.hessian.io.BasicDeserializer: unexpected object java.lang.String
com.alibaba.com.caucho.hessian.io.HessianFieldException: com.github.yukinomiu.dubbo.api.Resp.total: com.alibaba.com.caucho.hessian.io.BasicDeserializer: unexpected object java.lang.String
at com.alibaba.com.caucho.hessian.io.JavaDeserializer.logDeserializeError(JavaDeserializer.java:168)
at com.alibaba.com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:415)
at com.alibaba.com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:277)
at com.alibaba.com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:204)
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObjectInstance(Hessian2Input.java:2848)
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2175)
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2104)
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2148)
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2104)
at org.apache.dubbo.common.serialize.hessian2.Hessian2ObjectInput.readObject(Hessian2ObjectInput.java:109)
at org.apache.dubbo.common.serialize.hessian2.Hessian2ObjectInput.readObject(Hessian2ObjectInput.java:117)
at org.apache.dubbo.common.serialize.DefaultSerializationExceptionWrapper$ProxyObjectInput.readObject(DefaultSerializationExceptionWrapper.java:175)
at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.handleValue(DecodeableRpcResult.java:172)
at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:110)
at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:149)
at org.apache.dubbo.remoting.transport.DecodeHandler.decode(DecodeHandler.java:62)
at org.apache.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:50)
at org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:62)
at org.apache.dubbo.common.threadpool.ThreadlessExecutor$RunnableWrapper.run(ThreadlessExecutor.java:152)
at org.apache.dubbo.common.threadpool.ThreadlessExecutor.waitAndDrain(ThreadlessExecutor.java:77)
at org.apache.dubbo.rpc.AsyncRpcResult.get(AsyncRpcResult.java:205)
at org.apache.dubbo.rpc.protocol.AbstractInvoker.waitForResultIfSync(AbstractInvoker.java:287)
at org.apache.dubbo.rpc.protocol.AbstractInvoker.invoke(AbstractInvoker.java:190)
at org.apache.dubbo.rpc.listener.ListenerInvokerWrapper.invoke(ListenerInvokerWrapper.java:71)
at org.apache.dubbo.rpc.filter.RpcExceptionFilter.invoke(RpcExceptionFilter.java:41)
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334)
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CallbackRegistrationInvoker.invoke(FilterChainBuilder.java:196)
at org.apache.dubbo.rpc.protocol.ReferenceCountInvokerWrapper.invoke(ReferenceCountInvokerWrapper.java:88)
at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invokeWithContext(AbstractClusterInvoker.java:383)
at org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:80)
at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:344)
at org.apache.dubbo.rpc.cluster.router.RouterSnapshotFilter.invoke(RouterSnapshotFilter.java:46)
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334)
at org.apache.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:108)
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334)
at org.apache.dubbo.rpc.cluster.filter.support.MetricsClusterFilter.invoke(MetricsClusterFilter.java:56)
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334)
at org.apache.dubbo.rpc.protocol.dubbo.filter.FutureFilter.invoke(FutureFilter.java:52)
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334)
at org.apache.dubbo.spring.security.filter.ContextHolderParametersSelectedTransferFilter.invoke(ContextHolderParametersSelectedTransferFilter.java:41)
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334)
at org.apache.dubbo.metrics.filter.MetricsFilter.invoke(MetricsFilter.java:73)
at org.apache.dubbo.rpc.cluster.filter.support.MetricsConsumerFilter.invoke(MetricsConsumerFilter.java:37)
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334)
at org.apache.dubbo.rpc.cluster.filter.support.ConsumerClassLoaderFilter.invoke(ConsumerClassLoaderFilter.java:40)
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334)
at org.apache.dubbo.rpc.cluster.filter.support.ConsumerContextFilter.invoke(ConsumerContextFilter.java:116)
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334)
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CallbackRegistrationInvoker.invoke(FilterChainBuilder.java:196)
at org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster$ClusterFilterInvoker.invoke(AbstractCluster.java:91)
at org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker.invoke(MockClusterInvoker.java:103)
at org.apache.dubbo.rpc.cluster.support.wrapper.ScopeClusterInvoker.invoke(ScopeClusterInvoker.java:169)
at org.apache.dubbo.registry.client.migration.MigrationInvoker.invoke(MigrationInvoker.java:284)
at org.apache.dubbo.rpc.proxy.InvocationUtil.invoke(InvocationUtil.java:61)
at org.apache.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:75)
...
Caused by: com.alibaba.com.caucho.hessian.io.HessianProtocolException: com.alibaba.com.caucho.hessian.io.BasicDeserializer: unexpected object java.lang.String
at com.alibaba.com.caucho.hessian.io.AbstractDeserializer.error(AbstractDeserializer.java:131)
at com.alibaba.com.caucho.hessian.io.AbstractDeserializer.readMap(AbstractDeserializer.java:111)
at com.alibaba.com.caucho.hessian.io.AbstractDeserializer.readMap(AbstractDeserializer.java:119)
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2123)
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2104)
at com.alibaba.com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:411)
... 111 more
] with root cause
org.apache.dubbo.remoting.RemotingException: com.alibaba.com.caucho.hessian.io.HessianFieldException: com.github.yukinomiu.dubbo.api.Resp.total: com.alibaba.com.caucho.hessian.io.BasicDeserializer: unexpected object java.lang.String
com.alibaba.com.caucho.hessian.io.HessianFieldException: com.github.yukinomiu.dubbo.api.Resp.total: com.alibaba.com.caucho.hessian.io.BasicDeserializer: unexpected object java.lang.String
at com.alibaba.com.caucho.hessian.io.JavaDeserializer.logDeserializeError(JavaDeserializer.java:168)
at com.alibaba.com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:415)
at com.alibaba.com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:277)
at com.alibaba.com.caucho.hessian.io.JavaDeserializer.readObject(JavaDeserializer.java:204)
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObjectInstance(Hessian2Input.java:2848)
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2175)
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2104)
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2148)
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2104)
at org.apache.dubbo.common.serialize.hessian2.Hessian2ObjectInput.readObject(Hessian2ObjectInput.java:109)
at org.apache.dubbo.common.serialize.hessian2.Hessian2ObjectInput.readObject(Hessian2ObjectInput.java:117)
at org.apache.dubbo.common.serialize.DefaultSerializationExceptionWrapper$ProxyObjectInput.readObject(DefaultSerializationExceptionWrapper.java:175)
at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.handleValue(DecodeableRpcResult.java:172)
at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:110)
at org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcResult.decode(DecodeableRpcResult.java:149)
at org.apache.dubbo.remoting.transport.DecodeHandler.decode(DecodeHandler.java:62)
at org.apache.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:50)
at org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:62)
at org.apache.dubbo.common.threadpool.ThreadlessExecutor$RunnableWrapper.run(ThreadlessExecutor.java:152)
at org.apache.dubbo.common.threadpool.ThreadlessExecutor.waitAndDrain(ThreadlessExecutor.java:77)
at org.apache.dubbo.rpc.AsyncRpcResult.get(AsyncRpcResult.java:205)
at org.apache.dubbo.rpc.protocol.AbstractInvoker.waitForResultIfSync(AbstractInvoker.java:287)
at org.apache.dubbo.rpc.protocol.AbstractInvoker.invoke(AbstractInvoker.java:190)
at org.apache.dubbo.rpc.listener.ListenerInvokerWrapper.invoke(ListenerInvokerWrapper.java:71)
at org.apache.dubbo.rpc.filter.RpcExceptionFilter.invoke(RpcExceptionFilter.java:41)
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334)
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CallbackRegistrationInvoker.invoke(FilterChainBuilder.java:196)
at org.apache.dubbo.rpc.protocol.ReferenceCountInvokerWrapper.invoke(ReferenceCountInvokerWrapper.java:88)
at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invokeWithContext(AbstractClusterInvoker.java:383)
at org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:80)
at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:344)
at org.apache.dubbo.rpc.cluster.router.RouterSnapshotFilter.invoke(RouterSnapshotFilter.java:46)
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334)
at org.apache.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:108)
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334)
at org.apache.dubbo.rpc.cluster.filter.support.MetricsClusterFilter.invoke(MetricsClusterFilter.java:56)
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334)
at org.apache.dubbo.rpc.protocol.dubbo.filter.FutureFilter.invoke(FutureFilter.java:52)
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334)
at org.apache.dubbo.spring.security.filter.ContextHolderParametersSelectedTransferFilter.invoke(ContextHolderParametersSelectedTransferFilter.java:41)
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334)
at org.apache.dubbo.metrics.filter.MetricsFilter.invoke(MetricsFilter.java:73)
at org.apache.dubbo.rpc.cluster.filter.support.MetricsConsumerFilter.invoke(MetricsConsumerFilter.java:37)
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334)
at org.apache.dubbo.rpc.cluster.filter.support.ConsumerClassLoaderFilter.invoke(ConsumerClassLoaderFilter.java:40)
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334)
at org.apache.dubbo.rpc.cluster.filter.support.ConsumerContextFilter.invoke(ConsumerContextFilter.java:116)
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334)
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CallbackRegistrationInvoker.invoke(FilterChainBuilder.java:196)
at org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster$ClusterFilterInvoker.invoke(AbstractCluster.java:91)
at org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker.invoke(MockClusterInvoker.java:103)
at org.apache.dubbo.rpc.cluster.support.wrapper.ScopeClusterInvoker.invoke(ScopeClusterInvoker.java:169)
at org.apache.dubbo.registry.client.migration.MigrationInvoker.invoke(MigrationInvoker.java:284)
at org.apache.dubbo.rpc.proxy.InvocationUtil.invoke(InvocationUtil.java:61)
at org.apache.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:75)
...
Caused by: com.alibaba.com.caucho.hessian.io.HessianProtocolException: com.alibaba.com.caucho.hessian.io.BasicDeserializer: unexpected object java.lang.String
at com.alibaba.com.caucho.hessian.io.AbstractDeserializer.error(AbstractDeserializer.java:131)
at com.alibaba.com.caucho.hessian.io.AbstractDeserializer.readMap(AbstractDeserializer.java:111)
at com.alibaba.com.caucho.hessian.io.AbstractDeserializer.readMap(AbstractDeserializer.java:119)
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2123)
at com.alibaba.com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2104)
at com.alibaba.com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:411)
... 111 more
at org.apache.dubbo.remoting.exchange.support.DefaultFuture.doReceived(DefaultFuture.java:249) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.remoting.exchange.support.DefaultFuture.received(DefaultFuture.java:200) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.remoting.exchange.support.DefaultFuture.received(DefaultFuture.java:188) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleResponse(HeaderExchangeHandler.java:65) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:206) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:53) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:62) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.common.threadpool.ThreadlessExecutor$RunnableWrapper.run(ThreadlessExecutor.java:152) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.common.threadpool.ThreadlessExecutor.waitAndDrain(ThreadlessExecutor.java:77) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.AsyncRpcResult.get(AsyncRpcResult.java:205) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.protocol.AbstractInvoker.waitForResultIfSync(AbstractInvoker.java:287) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.protocol.AbstractInvoker.invoke(AbstractInvoker.java:190) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.listener.ListenerInvokerWrapper.invoke(ListenerInvokerWrapper.java:71) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.filter.RpcExceptionFilter.invoke(RpcExceptionFilter.java:41) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CallbackRegistrationInvoker.invoke(FilterChainBuilder.java:196) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.protocol.ReferenceCountInvokerWrapper.invoke(ReferenceCountInvokerWrapper.java:88) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invokeWithContext(AbstractClusterInvoker.java:383) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:80) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:344) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.router.RouterSnapshotFilter.invoke(RouterSnapshotFilter.java:46) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:108) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.support.MetricsClusterFilter.invoke(MetricsClusterFilter.java:56) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.protocol.dubbo.filter.FutureFilter.invoke(FutureFilter.java:52) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.spring.security.filter.ContextHolderParametersSelectedTransferFilter.invoke(ContextHolderParametersSelectedTransferFilter.java:41) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.metrics.filter.MetricsFilter.invoke(MetricsFilter.java:73) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.support.MetricsConsumerFilter.invoke(MetricsConsumerFilter.java:37) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.support.ConsumerClassLoaderFilter.invoke(ConsumerClassLoaderFilter.java:40) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.support.ConsumerContextFilter.invoke(ConsumerContextFilter.java:116) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:334) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CallbackRegistrationInvoker.invoke(FilterChainBuilder.java:196) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster$ClusterFilterInvoker.invoke(AbstractCluster.java:91) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker.invoke(MockClusterInvoker.java:103) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.cluster.support.wrapper.ScopeClusterInvoker.invoke(ScopeClusterInvoker.java:169) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.registry.client.migration.MigrationInvoker.invoke(MigrationInvoker.java:284) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.proxy.InvocationUtil.invoke(InvocationUtil.java:61) ~[dubbo-3.2.5.jar:3.2.5]
at org.apache.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:75) ~[dubbo-3.2.5.jar:3.2.5]
...
```
根据 [dubbo-go-hessian2](https://github.com/apache/dubbo-go-hessian2) 文档, Golang使用 `*int64` , Java使用 `java.lang.Long` , 预期Java可以正确解析, 实测反序列化失败.
Contributor guide
Research direction
The report names no repository files or tests. Reproduce the Dubbo-go v3.10 Provider response with Resp.Total as *int64 and the Java dubbo-spring-boot-starter 3.2.5 Consumer, then trace the Hessian/Dubbo serialization and decoding shown in the logs. Done means the Java consumer decodes the RPC result without the unexpected java.lang.String error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, java
- Domain
- backend-api-design, distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100