[英]Pass Remote object in method to RMI server?
我有一個連接到某個RMI服務器的RMI客戶端,只是為了讓它知道它可以使用這個新客戶端。
我可以直接傳遞一些Remote對象,以便:
serverRemoteObject.registerClient(theClientRemoteObjectTheServerShouldUse);
實際上會給服務器一些他可以使用的對象,而無需連接到我的客戶端? 以下問題說這是可能的,但沒有給出真實的例子:
安德魯
是的你可以。 這就是在RMI情況下回調的工作原理。 您將對象發送到服務器,當服務器調用對象上的方法時,它將在“客戶端”JVM中執行,而不是在服務器上執行。 查看UnicastRemoteObject.export
方法,將實現Remote
接口的任何對象導出為可以傳遞給服務器的遠程對象。
interface UpdateListener extends Remote {
public void handleUpdate(Object update) throws RemoteException;
}
class UpdateListenerImpl implements UpdateListener {
public void handleUpdate(Object update) throws RemoteException {
// do something
}
}
//somewhere in your client code
final UpdateListener listener = new UpdateListenerImpl();
UnicastRemoteObject.export(listener);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.