com.alibaba.dubbo.rpc.RpcException: Failed to invoke the method getTest in the service com.asrsc.psp.common.service.test.TestService. Tried 3 times of the providers [192.168.1.250:20880] (1/1) from the registry 192.168.1.151:2181 on the consumer 192.168.1.250 using the dubbo version 2.8.4. Last error is: Failed to invoke remote method: getTest, provider: dubbo://192.168.1.250:20880/com.asrsc.psp.common.service.test.TestService?anyhost=true&application=psp-web&check=false&dubbo=2.8.4&generic=false&interface=com.asrsc.psp.common.service.test.TestService&methods=getTest&pid=3700&revision=0.0.1-SNAPSHOT&side=consumer×tamp=1484013408295&version=1.0, cause: Failed to send response: Response [id=8, version=2.0.0, status=20, event=false, error=null, result=RpcResult [result=com.asrsc.psp.common.entity.test.TestBean@12602bd, exception=null]], cause: java.lang.StackOverflowError
java.lang.StackOverflowError
at java.lang.reflect.Field.getInt(Field.java:574)
at com.alibaba.com.caucho.hessian.io.JavaSerializer$IntFieldSerializer.serialize(JavaSerializer.java:351)
at com.alibaba.com.caucho.hessian.io.JavaSerializer.writeInstance(JavaSerializer.java:263)
at com.alibaba.com.caucho.hessian.io.JavaSerializer.writeObject(JavaSerializer.java:227)
at com.alibaba.com.caucho.hessian.io.Hessian2Output.writeObject(Hessian2Output.java:408)
at com.alibaba.com.caucho.hessian.io.JavaSerializer.writeObject(JavaSerializer.java:203)
at com.alibaba.com.caucho.hessian.io.Hessian2Output.writeObject(Hessian2Output.java:408)
at com.alibaba.com.caucho.hessian.io.JavaSerializer$FieldSerializer.serialize(JavaSerializer.java:313)
at com.alibaba.com.caucho.hessian.io.JavaSerializer.writeInstance(JavaSerializer.java:263)
at com.alibaba.com.caucho.hessian.io.JavaSerializer.writeObject(JavaSerializer.java:227)
at com.alibaba.com.caucho.hessian.io.Hessian2Output.writeObject(Hessian2Output.java:408)
at com.alibaba.com.caucho.hessian.io.JavaSerializer.writeObject(JavaSerializer.java:203)
at com.alibaba.com.caucho.hessian.io.Hessian2Output.writeObject(Hessian2Output.java:408)
at com.alibaba.com.caucho.hessian.io.JavaSerializer$FieldSerializer.serialize(JavaSerializer.java:313)
这是consumer端的异常日志,需要序列化的bean是TestBean
private String name;
com.alibaba.dubbo.rpc.RpcException: Failed to invoke the method getTest in the service com.asrsc.psp.common.service.test.TestService. Tried 3 times of the providers [192.168.1.250:20880] (1/1) from the registry 192.168.1.151:2181 on the consumer 192.168.1.250 using the dubbo version 2.8.4. Last error is: Failed to invoke remote method: getTest, provider: dubbo://192.168.1.250:20880/com.asrsc.psp.common.service.test.TestService?anyhost=true&application=psp-web&check=false&dubbo=2.8.4&generic=false&interface=com.asrsc.psp.common.service.test.TestService&methods=getTest&pid=3700&revision=0.0.1-SNAPSHOT&side=consumer×tamp=1484013408295&version=1.0, cause: Failed to send response: Response [id=8, version=2.0.0, status=20, event=false, error=null, result=RpcResult [result=com.asrsc.psp.common.entity.test.TestBean@12602bd, exception=null]], cause: java.lang.StackOverflowError java.lang.StackOverflowError at java.lang.reflect.Field.getInt(Field.java:574) at com.alibaba.com.caucho.hessian.io.JavaSerializer$IntFieldSerializer.serialize(JavaSerializer.java:351) at com.alibaba.com.caucho.hessian.io.JavaSerializer.writeInstance(JavaSerializer.java:263) at com.alibaba.com.caucho.hessian.io.JavaSerializer.writeObject(JavaSerializer.java:227) at com.alibaba.com.caucho.hessian.io.Hessian2Output.writeObject(Hessian2Output.java:408) at com.alibaba.com.caucho.hessian.io.JavaSerializer.writeObject(JavaSerializer.java:203) at com.alibaba.com.caucho.hessian.io.Hessian2Output.writeObject(Hessian2Output.java:408) at com.alibaba.com.caucho.hessian.io.JavaSerializer$FieldSerializer.serialize(JavaSerializer.java:313) at com.alibaba.com.caucho.hessian.io.JavaSerializer.writeInstance(JavaSerializer.java:263) at com.alibaba.com.caucho.hessian.io.JavaSerializer.writeObject(JavaSerializer.java:227) at com.alibaba.com.caucho.hessian.io.Hessian2Output.writeObject(Hessian2Output.java:408) at com.alibaba.com.caucho.hessian.io.JavaSerializer.writeObject(JavaSerializer.java:203) at com.alibaba.com.caucho.hessian.io.Hessian2Output.writeObject(Hessian2Output.java:408) at com.alibaba.com.caucho.hessian.io.JavaSerializer$FieldSerializer.serialize(JavaSerializer.java:313) 这是consumer端的异常日志,需要序列化的bean是TestBean private String name;
这是TestBean的属性,如果去掉private LocalDateTime createTime;则可以正常运行。感觉是序列化的问题,dubbo默认序列化是Hessian2,修改为fst provider端配置文件代码大致如下:
在pom文件与dubbox相关的引入:
想使用fst方式序列化,但是错误依然如故,感觉好像是consumer端还是使用hessian2,有没有人遇到过类似问题?