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.AutoCloseable
java.rmi.RemoteException
- při I/O problému