Hlavní menu
Nástroje |
UvodDoKomponent.MessagePrinterSpring HistoryHide minor edits - Show changes to markup 17 December 2009, 14:56
by
- Changed line 53 from:
=java122 [= to:
=xml [= 16 December 2009, 13:23
by
- Changed line 80 from:
<source> to:
=java122 [= Changed lines 85-88 from:
</source> === Spuštění klienta === to:
=] Spuštění klientaChanged line 91 from:
<source> to:
=java122 [= Changed line 95 from:
</source> to:
=] 16 December 2009, 13:18
by
- Added lines 1-95:
Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564 Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564 Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564 Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564 Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564 Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564 Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564 Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564 Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564 Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564 Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564 Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564 Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564 Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564 Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564 Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564 Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564 Deprecated: Function call_user_method() is deprecated in /home/system/www/apache/wiki.kiv.zcu.cz/cookbook/beautifier/php/Beautifier/Core.php on line 564 MessagePrinter? ve SpringuV tomto tutoriálu se používá SpringSource Tool Suite. Společná částAbych si vyzkoušel něco zajímavého, vytvořil jsem MessagePrinter? pomocí RMI. Server tedy svou službu zveřejní na určitém portu a klient se na tento port připojí, komunikace bude probíhat přes RMI. Klient bude požadovat následující rozhranní, zatímco server bude zveřejňovat službu, která ho implementuje. public interface IMsgGen { String getMsg(); } ServerMusí obsahovat implementaci rozhranní, definici beany a samozřejmě se musí beana zveřejnit. Implementacepublic class MsgGenImpl implements IMsgGen { @Override public String getMsg() { return "Hi there..."; } } Definice - BeanDefinition?.xmlVytvoření beany z implementace rozhranní je záležitost velice primitivní. <bean id="MsgGenService" class="cz.zcu.kiv.cosi.msgtalk.server.MsgGenImpl"></bean> Zveřejnění beany pak zařídí následující řádky. Vytvoří se beana třídy
<bean class="org.springframework.remoting.rmi.RmiServiceExporter"> <property name="serviceName" value="MyMsgGenService"/> <property name="service" ref="MsgGenService"/> <property name="serviceInterface" value="cz.zcu.kiv.cosi.msgtalk.IMsgGen"/> <property name="registryPort" value="1234"/> </bean> Spuštění serveruNyní je již vše připravené. Máme implementaci rozhranní, máme beanu této implementace a nastavili jsme její zveřejnění. Zbývá tedy "spustit server", kde vlastně nejde o nic jiné, než načtení kontextu v hlavní metodě. Spuštění bude tedy vypadat následovně. public static void main(String args[]) { ApplicationContext ctx = new ClassPathXmlApplicationContext("cz/zcu/kiv/cosi/msgtalk/server/beanDefinition.xml"); } KlientV klientovi se musí nastavit beana služby, kterou jsme zveřejnili díky serveru. Použitím kontextu se k ní pak dostaneme v hlavní metodě klienta. BeanDefinition?.xmlVytvoří se beana třídy <source> <bean id="MsgGenService?" class="org.springframework.remoting.rmi.RmiProxyFactoryBean?"> <property name="serviceUrl" value="rmi://localhost:MyMsgGenService?"/> <property name="serviceInterface" value="cz.zcu.kiv.cosi.msgtalk.IMsgGen?"/> </bean> </source> === Spuštění klienta === Po vytvoření kontextu velice jednoduše získáme zevřejněnou službu a zavoláme její metodu. <source> ApplicationContext? ctx = new ClassPathXmlApplicationContext?("cz/zcu/kiv/cosi/msgtalk/client/beanDefinition.xml"); IMsgGen? msgGen = (IMsgGen?) ctx.getBean("MsgGenService?"); System.out.println(msgGen.getMsg()); </source> |