Hlavní menu
Nástroje |
MessagePrinter v OSGiV tomto tutoriálu se používá SpringSource Tool Suite. Základem je samozřejmě rozhraní ServerRozhranní Export packageV MANIFESTu? se musí přidat export package, aby měl klient přístup k rozhranní Zápis vypadá následovně: Export-Package: cz.zcu.kiv.cosi.msgtalk Ale je přístupný i přes GUI manifestu, záložka Runtime. V oblasti Exported Packages tlačítko Add a vybrat pomocí GUI. ActivatorV následujícím příkladu je vidět spuštění serveru: 1) Vytvoříme instanci 2) Tuto službu zaregistrujeme pomocí metody Jako první parametr je název rozhranní, které vytvořená třída implementuje. To se používá z důvodu nezávislosti na implementaci. Klient bude vždy chtít službu zaregistrovanou pod jménem Jako druhý je aktivní objekt. A jako třetí je tabulka parametrů, v tomto případě prázdná. public void start(BundleContext? context) throws Exception { System.out.println("Starting server..."); msgGen = new MsgGenImpl?(); context.registerService("cz.zcu.kiv.cosi.msgtalk.IMsgGen?", msgGen, new Hashtable()); System.out.println("MsgGen? registered..."); } Při ukončování je pak slušností odhlásit službu, tedy v metodě context.ungetService(context.getServiceReference("cz.zcu.kiv.cosi.msgtalk.IMsgGen?"));
KlientAbychom mohli pracovat, musíme nejprve importovat package, který obsahuje rozhranní <code>IMsgGen?</code>. Pak budeme už jen zkoušet v Activatoru zavolat službu registrovanou na tento interface. Import packageV MANIFESTu? se musí přidat import package, aby měl klient přístup k rozhranní Import-Package: cz.zcu.kiv.cosi.msgtalk, Ale je přístupný i přes GUI manifestu, záložka Dependencies. V oblasti Imported Packages tlačítko Add a vybrat pomocí GUI. ActivatorAbychom získali službu, musíme nejdříve získat referenci, to provedeme voláním metody To je vše k získání služby, s kterou se již může pracovat dál. public void start(BundleContext? context) throws Exception { msgGen = (IMsgGen?) context.getService(context.getServiceReference("cz.zcu.kiv.cosi.msgtalk.IMsgGen?")); System.out.println("client started..."); System.out.println(msgGen.getMsg()); } SpuštěníV Run configurations ... je třeba zaškrtnout oba klienty Server i Klient a nastavit Serveru, aby se spouštěl před Klientem, tedy Start level menší než u Serveru. V Eclipsu i STS je defaultně Start level na 4, dá se změnit u Default start level. |