You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@dubbo.apache.org by "yukinomiu (via GitHub)" <gi...@apache.org> on 2023/09/01 06:54:57 UTC

[GitHub] [dubbo-go] yukinomiu opened a new issue, #2410: Dubbo-go作为Provider时, RPC返回的结构体中如果包含指针字段, Java端无法正确解析

yukinomiu opened a new issue, #2410:
URL: https://github.com/apache/dubbo-go/issues/2410

   ### 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
   
   <details><summary>Click me to check logs</summary>
   
   ```
   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&param.sign=&path=/com.github.yukinomiu.dubbo.api.TestService&pid=44818&protocol=dubbo&qos.enable=true&qos.port=50000&registry=nacos&registry.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&timestamp=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]
   	...
   
   ```
   
   </details>
   
   根据 [dubbo-go-hessian2](https://github.com/apache/dubbo-go-hessian2) 文档, Golang使用 `*int64` , Java使用 `java.lang.Long` , 预期Java可以正确解析, 实测反序列化失败.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


Re: [I] Dubbo-go作为Provider时, RPC返回的结构体中如果包含指针字段, Java端无法正确解析 [dubbo-go]

Posted by "AlexStocks (via GitHub)" <gi...@apache.org>.
AlexStocks commented on issue #2410:
URL: https://github.com/apache/dubbo-go/issues/2410#issuecomment-6036177292

   > > [@Qianlin1455](https://github.com/Qianlin1455) thx for your kindness for dubbo-go. please check if this problem exists or not. If it is indeed a problem, please fix it.
   > 
   > I tested this issue against the current dubbo-go main branch with dubbo-go-hessian2 v1.13.2. I verified the full Dubbo RPC path from a Dubbo-Go provider to a Java Dubbo consumer. Both cases work correctly:
   > 
   > * non-nil *int64 is deserialized as Java Long with the expected value
   > * nil *int64 is deserialized as Java Long null
   >   I could no longer reproduce the original issue. It appears this has already been fixed in the newer Hessian2 implementation.
   
   ok. I appreciate your great work. have you joined our dubbo-go wechat group? If so, I will assign you some other works.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


Re: [I] Dubbo-go作为Provider时, RPC返回的结构体中如果包含指针字段, Java端无法正确解析 [dubbo-go]

Posted by "Qianlin1455 (via GitHub)" <gi...@apache.org>.
Qianlin1455 commented on issue #2410:
URL: https://github.com/apache/dubbo-go/issues/2410#issuecomment-6037650401

   > > > [@Qianlin1455](https://github.com/Qianlin1455) thx for your kindness for dubbo-go. please check if this problem exists or not. If it is indeed a problem, please fix it.
   > > 
   > > 
   > > I tested this issue against the current dubbo-go main branch with dubbo-go-hessian2 v1.13.2. I verified the full Dubbo RPC path from a Dubbo-Go provider to a Java Dubbo consumer. Both cases work correctly:
   > > 
   > > * non-nil *int64 is deserialized as Java Long with the expected value
   > > * nil *int64 is deserialized as Java Long null
   > >   I could no longer reproduce the original issue. It appears this has already been fixed in the newer Hessian2 implementation.
   > 
   > ok. I appreciate your great work. have you joined our dubbo-go wechat group? If so, I will assign you some other works.
   
   yes,I've joined the wechat group!


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


Re: [I] Dubbo-go作为Provider时, RPC返回的结构体中如果包含指针字段, Java端无法正确解析 [dubbo-go]

Posted by "qiubyte (via GitHub)" <gi...@apache.org>.
qiubyte commented on issue #2410:
URL: https://github.com/apache/dubbo-go/issues/2410#issuecomment-2723692255

   experience the same problem


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo-go] yukinomiu commented on issue #2410: Dubbo-go作为Provider时, RPC返回的结构体中如果包含指针字段, Java端无法正确解析

Posted by "yukinomiu (via GitHub)" <gi...@apache.org>.
yukinomiu commented on issue #2410:
URL: https://github.com/apache/dubbo-go/issues/2410#issuecomment-1702267920

   另外, 如果请求结构体中有指针类型 `*int64`, 那么Java侧可以正确使用 `java.lang.Long` 进行映射.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo-go] DMwangnima commented on issue #2410: Dubbo-go作为Provider时, RPC返回的结构体中如果包含指针字段, Java端无法正确解析

Posted by "DMwangnima (via GitHub)" <gi...@apache.org>.
DMwangnima commented on issue #2410:
URL: https://github.com/apache/dubbo-go/issues/2410#issuecomment-1729636561

   @yukinomiu Try to use **long** instead of **Long**.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


Re: [I] Dubbo-go作为Provider时, RPC返回的结构体中如果包含指针字段, Java端无法正确解析 [dubbo-go]

Posted by "DMwangnima (via GitHub)" <gi...@apache.org>.
DMwangnima commented on issue #2410:
URL: https://github.com/apache/dubbo-go/issues/2410#issuecomment-1751901249

   Consumer:
   ```java
   public class TestLongReq implements Serializable {
       private Long total;
   
       public Long getTotal() {
           return total;
       }
   
       public void setTotal(Long total) {
           this.total = total;
       }
   }
   
   public class TestLongResp implements Serializable {
       private Long total;
   
       public Long getTotal() {
           return total;
       }
   
       public void setTotal(Long total) {
           this.total = total;
       }
   }
   
   TestLongResp TestLong(TestLongReq req) throws Exception;
   ```
   
   Provider:
   ```go
   type TestLongReq struct {
   	Total *int64
   }
   
   func (req *TestLongReq) JavaClassName() string {
   	return "org.apache.dubbo.samples.api.TestLongReq"
   }
   
   type TestLongResp struct {
   	Total *int64
   }
   
   func (req *TestLongResp) JavaClassName() string {
   	return "org.apache.dubbo.samples.api.TestLongResp"
   }
   
   func (u *UserProviderImpl) TestLong(ctx context.Context, req *TestLongReq) (*TestLongResp, error) {
   	return &TestLongResp{Total: req.Total}, nil
   }
   
   dubbo:
     protocols:
       dubbo:
         name: dubbo
         port: 20001
     provider:
       services:
         UserProviderImpl:
           interface: org.apache.dubbo.samples.api.UserProvider
   ```
   
   @yukinomiu This works fine.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo-go] yukinomiu commented on issue #2410: Dubbo-go作为Provider时, RPC返回的结构体中如果包含指针字段, Java端无法正确解析

Posted by "yukinomiu (via GitHub)" <gi...@apache.org>.
yukinomiu commented on issue #2410:
URL: https://github.com/apache/dubbo-go/issues/2410#issuecomment-1703830361

   @chickenlj issue正文里有log, 点击即可展开


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


Re: [I] Dubbo-go作为Provider时, RPC返回的结构体中如果包含指针字段, Java端无法正确解析 [dubbo-go]

Posted by "AlexStocks (via GitHub)" <gi...@apache.org>.
AlexStocks commented on issue #2410:
URL: https://github.com/apache/dubbo-go/issues/2410#issuecomment-6019652195

   @Qianlin1455 thx for your kindness for dubbo-go. please check if this problem exists or not. If it is indeed a problem, please fix it.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo-go] chickenlj commented on issue #2410: Dubbo-go作为Provider时, RPC返回的结构体中如果包含指针字段, Java端无法正确解析

Posted by "chickenlj (via GitHub)" <gi...@apache.org>.
chickenlj commented on issue #2410:
URL: https://github.com/apache/dubbo-go/issues/2410#issuecomment-1703741499

   @yukinomiu 有具体的报错信息吗。我怀疑是hessian-go序列化相关的兼容性问题。


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


Re: [I] Dubbo-go作为Provider时, RPC返回的结构体中如果包含指针字段, Java端无法正确解析 [dubbo-go]

Posted by "qiubyte (via GitHub)" <gi...@apache.org>.
qiubyte commented on issue #2410:
URL: https://github.com/apache/dubbo-go/issues/2410#issuecomment-2723747129

   > dubbo-go v3.20 serialization: hessian2
   > 
   > experience the same problem has not been resolved
   
   use latest `github.com/apache/dubbo-go-hessian2 v1.12.5` resolved
   release , since ` [v1.12.4](https://github.com/apache/dubbo-go-hessian2/releases/tag/v1.12.4)`  bug fixed
   
   mark


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


Re: [I] Dubbo-go作为Provider时, RPC返回的结构体中如果包含指针字段, Java端无法正确解析 [dubbo-go]

Posted by "qiubyte (via GitHub)" <gi...@apache.org>.
qiubyte commented on issue #2410:
URL: https://github.com/apache/dubbo-go/issues/2410#issuecomment-2723708721

   > Consumer:
   > 
   > public class TestLongReq implements Serializable {
   >     private Long total;
   > 
   >     public Long getTotal() {
   >         return total;
   >     }
   > 
   >     public void setTotal(Long total) {
   >         this.total = total;
   >     }
   > }
   > 
   > public class TestLongResp implements Serializable {
   >     private Long total;
   > 
   >     public Long getTotal() {
   >         return total;
   >     }
   > 
   >     public void setTotal(Long total) {
   >         this.total = total;
   >     }
   > }
   > 
   > TestLongResp TestLong(TestLongReq req) throws Exception;
   > Provider:
   > 
   > type TestLongReq struct {
   > 	Total *int64
   > }
   > 
   > func (req *TestLongReq) JavaClassName() string {
   > 	return "org.apache.dubbo.samples.api.TestLongReq"
   > }
   > 
   > type TestLongResp struct {
   > 	Total *int64
   > }
   > 
   > func (req *TestLongResp) JavaClassName() string {
   > 	return "org.apache.dubbo.samples.api.TestLongResp"
   > }
   > 
   > func (u *UserProviderImpl) TestLong(ctx context.Context, req *TestLongReq) (*TestLongResp, error) {
   > 	return &TestLongResp{Total: req.Total}, nil
   > }
   > 
   > dubbo:
   >   protocols:
   >     dubbo:
   >       name: dubbo
   >       port: 20001
   >   provider:
   >     services:
   >       UserProviderImpl:
   >         interface: org.apache.dubbo.samples.api.UserProvider
   > [@yukinomiu](https://github.com/yukinomiu) This works fine.
   
   what's serialization used. I use hessian2, java consumer exception occurred


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


Re: [I] Dubbo-go作为Provider时, RPC返回的结构体中如果包含指针字段, Java端无法正确解析 [dubbo-go]

Posted by "yukinomiu (via GitHub)" <gi...@apache.org>.
yukinomiu commented on issue #2410:
URL: https://github.com/apache/dubbo-go/issues/2410#issuecomment-1751628583

   @DMwangnima DM `long` is ok, but I need `Long` for null value.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


Re: [I] Dubbo-go作为Provider时, RPC返回的结构体中如果包含指针字段, Java端无法正确解析 [dubbo-go]

Posted by "Qianlin1455 (via GitHub)" <gi...@apache.org>.
Qianlin1455 commented on issue #2410:
URL: https://github.com/apache/dubbo-go/issues/2410#issuecomment-6032737013

   > [@Qianlin1455](https://github.com/Qianlin1455) thx for your kindness for dubbo-go. please check if this problem exists or not. If it is indeed a problem, please fix it.
   
   I tested this issue against the current dubbo-go main branch with dubbo-go-hessian2 v1.13.2.
   I verified the full Dubbo RPC path from a Dubbo-Go provider to a Java Dubbo consumer.
   Both cases work correctly:
   - non-nil *int64 is deserialized as Java Long with the expected value
   - nil *int64 is deserialized as Java Long null
   I could no longer reproduce the original issue. It appears this has already been fixed in the newer Hessian2 implementation.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


Re: [I] Dubbo-go作为Provider时, RPC返回的结构体中如果包含指针字段, Java端无法正确解析 [dubbo-go]

Posted by "Qianlin1455 (via GitHub)" <gi...@apache.org>.
Qianlin1455 commented on issue #2410:
URL: https://github.com/apache/dubbo-go/issues/2410#issuecomment-6007603415

   Hi, I'd like to work on this issue as my first contribution to Dubbo-Go.
   
   I'll first try to reproduce the pointer-field interoperability problem against the current main branch and verify whether it still exists with the latest dubbo-go/hessian2 implementation.
   
   If the issue is still valid, I'd like to investigate the serialization path and add a regression test before making the fix. Could you please let me know if this issue is still available to work on?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org