我有一个 RMI 服务,它提供以下方法:
ArrayList<T> save(ArrayList<T> saveList) throws RemoteException;
我想将其签名更改为:
Collection<T> save(Collection<T> saveList) throws RemoteException;
这不会导致编译错误,所以一切似乎都很好。但是当客户端应用程序尝试执行该方法时,我得到以下异常。我没有更改调用者,这意味着该方法仍然使用ArrayList
.
java.lang.NoSuchMethodError: com/IDatabaseDao.sync(Ljava/util/ArrayList;)Ljava/util/ArrayList;
我不知道 RMI 的详细工作原理,但似乎找不到该方法,因为它没有预期的字符串表示形式?真的吗?所以我必须在这里改变所有来电者,还是有更好的方法?
这似乎很容易出错,因为我在这里没有编译错误。是否有识别此类问题的工具,也许是 Eclipse 插件?