I - rozhraní, ke kterému se váže vzdálený objektpublic interface RemoteObject<I>
extends java.rmi.Remote, java.lang.AutoCloseable
Remote a všechny metody deklarovat
RemoteException. To je jistě nepraktické, takže implementace
klient-serverové komunikace v ArabTools sáhla po tomto zapouzdření. Pokud při
spouštění vzdálených metod dojde k vyvolání výjimky jiné, než té, kterou
úmyslně vyvolala volaná metoda (u které je tedy žádoucí, aby se propagovala k
volajícímu), bude zabalena jako kauza do runtime
ServerRuntimeException. Vzdálený objekt je pravděpodobně již poškozen
(např. ho server už odstranil z paměti, server se také mohol ukončit nebo
restartovat, mohlo dojít k trvalému přerušení spojení apod.), takže další
volání jeho metod by už nedávalo smysl.| Modifier and Type | Method and Description |
|---|---|
void |
close()
Zavře tento vzdálený objekt a na serveru ho odstraní z paměti.
|
java.lang.Object |
invoke(Invoke<I> invoke)
Vykoná požadovanou metodu s uvedenými argumenty na přidruženém vzdáleném
objektu.
|
java.lang.Object invoke(Invoke<I> invoke) throws java.rmi.RemoteException, InvocationException
invoke - požadované parametry volánívoid se vrací jako null)java.rmi.RemoteException - při I/O problémuInvocationException - při problému s voláním metody (volání
postoupilo až na serverovou stranu, ale tam už nebylo možné dál
pokračovat); výjimka vyvolaná samotnou metodou je v kauzálním řetězi této
výjimkyvoid close()
throws java.rmi.RemoteException
Je nepřípustné po vykonání této metody dál objekt používat na klienstké straně (např. volat jeho další metody vč. této).
close in interface java.lang.AutoCloseablejava.rmi.RemoteException - při I/O problému