A fatal error has been detected by the Java Runtime Environment:
io.protostuff.GraphProtostuffOutput.writeObject(ILjava/lang/Object;Lio/protostuff/Schema;Z)异常
找到报错位置,为rpc接口调用部分
形参类型为List<Integer>,入参为
new ArrayList<Integer>() {{ add(day); }}
# An error report file with more information is saved as:
# /Users/admin/apache-tomcat-8.5.83/bin/hs_err_pid3525.log
根据提示找到失败日志
报错内容:
Exception <a 'java/lang/ClassCastException': sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl cannot be cast to java.lang.Class>
错误类型是泛型强转类报的错;
创建一个基类,带泛型的T
创建一个子类,继承父类Dao,带泛型T
运行main方法,报错
修改为不带泛型
运行成功,猜测是只创建了堆内存,但未声明引用,导致内部序列化的时候获取泛型类型时出现类似于模拟的那种情况,导致jvm crash。
所以声明List的引用并且指定泛型则可以成功执行rpc。
研究明白后再补充,如果有大佬明白求解答。