Zdravim, Uz je to nejaky ten patek co jsem naposledy delal s RMI, ale myslim ze by melo stacit pridat implements java.rmi.Remote (k tomu Objekt1Impl). Ovsem nevylucuji, ze bude nutne provest jeste nejake dalsi figle. Kamil Podlesak
-----Original Message----- From: [email protected] [mailto:[email protected]]on Behalf Of Lukáš Kinc Sent: Saturday, March 28, 2009 9:00 PM To: [email protected] Subject: RMI - Facade Zdravim, vytvarim aplikaci klient-server s pouzitim RMI a abych nemel desitky metod na vystavenem rozhrani, chtel jsem tyto metody zaobalit do objektu a volat je az pres ne: public class TridaImplementation extends UnicastRemoteObject implements Trida{ public TridaImplementation(int port) throws RemoteException{ super(port); } @Override public Objekt1Interface getObjekt1() { return (Objekt1Interface ) new Objekt1Implementation(); } @Override public void getObjekt2() { ... } } public class Objekt1Implementation implements Objekt1Interface { @Override public String metoda11() { ... return string; } } Bohuzel jsem zjistil, coz je i celkem logicke, ze kdyz klient takto dostane objekt a zavola na nem metodu (referenceNaRozhrani.getObjekt1().metoda11();), tak mu server posle vsechny objekty, se kterymi potrebuje pracovat ta volana metoda, aby si tu cinnost provedl sam klient, cimz mi defakto protuneluje celou aplikacni logiku. Chtel bych ale, aby mi server na klient poslal pouze navratovou hodnotu te metody (v mem prikladu by to byl String string) tak, jako by to udelal kdybych pouzil jedno-tridovou fasadu: public class TridaImplementation extends UnicastRemoteObject implements Trida{ public TridaImplementation(int port) throws RemoteException{ super(port); } @Override public String metoda11() { ... return string; } } Je mozne to nejak jednoduse vyresit nebo se budu muset spokojit pouze s tou jednou tridou? Lukáš Kinc _____ Stáhněte si zcela nový Messenger 2009! Klikni zde! <http://download.live.com/messenger>
