今天新增项目时,懒于复制粘贴,没有仔细查看代码,导致花了很多时间去查找错误原因。特记录于此,以备后来查看。
1.首先要查看服务有没有绑定到URL。我就是因为忘了增加自定义的注解,导致查找服务时为null.查看原因时,发现impl实现类有日志输出,而在rmi服务方法中确没有日志输出。说明根本没有调用到rmi服务层。且服务报错的代码行与实际调用方法的代码行不一致。报错的代码行在类的根部。后来才悟到可能是因为整个方法类的错误,所以报错行在类的底部。
2.继承类的实现接口【必须继承Remote】,我就是因为忘记继承Remote导致服务被绑定后,仍然报将实现类转换为接口类的错误。
3.注意,具体的RMI服务在继承自UnicastRemoteObject类。
4.另外需要注意,实体类都需要序列化接口。