VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ

Slides:



Advertisements
Podobné prezentace
Zoner Foto Studio Bohumil Bareš.
Advertisements

Úvod do platformy Java EE
Ing. David Pejčoch Tutorial
Seminář C++ 5. cvičení Dědičnost Ing. Jan Mikulka.
Špička v každém směru IT 3 Produktivita práce s Eclipse.
Ať se postará někdo jiný, najmeme si programátory z Číny. Čuníkům vstup zakázán.
Ing. Jan Mittner MySQL Workbench 2. Základy práce s databází 3. Subversion 2.
(B1 Document Managment) B1UP – Správa dokumentů Ing. Radomír Možnar Servis/Helpdesk.
Počítače a programování 1. Obsah přednášky Výjimky - základní typy výjimek Způsoby zpracování výjimek.
Vzdělávací technologie Wonderware Historian Clients QUERY.
YMUSY1 Multimediální systémy 1 Cvičení 5 Formuláře a ovládací prvky.
Ing. Lukáš Burkoň Debugging 2. Testování 3. Unit testy 2.
J a v a Začínáme programovat Lucie Žoltá metody, objekty, konstruktor.
J a v a Začínáme programovat Lucie Žoltá. Odkazy - oficiální stránky (překladače, help, metody, vývojové prostředí NetBeans,...)
OvzdusiSQL Kvasar, spol. s r. o.. Obsah Opravy Novinky Nastavení programu Nastavení pro IT Export hlášení ISPOP Karta měření Karta emise Možnosti importů.
MySQL - Vytvoření nové tabulky  create table jméno_tabulky (jméno_položky typ_položky,... ) Přehled nejběžnějších datových typů Přehled nejběžnějších.
Prezentační nástroj Open Office, Impress ZÁKLADY PRÁCE Předmět: Informatika Ročník: 6.ročník Klíčová slova: Nová prezentace, snímek, průvodce prezentací,
VY_32_INOVACE_4.2.IVT4N,1,2.18/Če Gymn á zium, Český Tě ší n, př í spěvkov á organizace Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je.
InfoPath Využití formulářů ve výuce zeměpisu. InfoPath Nadstavba k balíku MS Office Prostředí koresponduje s ostatními produkty Microsoftu. Program je.
Ing. Josef Veselý Označení šablony a vzdělávací sady viz.rozpis.
C# - Exceptions (výjimky)
Jedenácté cvičení Vlákna. Java cv112 Vlákna Operační systém Mutitasking – více úloh se v operačním programu vykonává „současně“ Java Multithreading -
Seminář C cvičení Obsluha výjimek Ing. Jan Mikulka.
4IT445 – Testování a ladění v PHP Ing. Jan Mittner
Ing. Jan Mittner Základy MVC 2. Rozšíření layoutu 3. helpery 4. Bootstrap a přepis URL adres 2.
PRÁCE S VLÁKNY A APLIKAČNÍ DOMÉNY V.NET FRAMEWORK APLIKACÍCH Architektura technologie.NET Jan Martinovič, FEI - Katedra Informatiky.
Síťové programování Informační technologie - praxe SPŠE V úžlabině Jan Klepal, Mgr. Radka Müllerová Verze 2.
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - PŘEDNÁŠKA Zbyněk Šlajchrt Část 4.
6. cvičení Polymorfismus
Alg91 Textové soubory Na rozdíl od jiných typů souborů jsou textové soubory určené pro gramotné lidské oko. Textový soubor je posloupnost znaků členěná.
Ing. Jan Mittner Životní cyklus požadavku 2. Moduly 3. Pluginy 4. Jak řešit komponenty typu menu 5. atd. 2.
KIV/PPA1 cvičení 8 Cvičící: Pavel Bžoch. Osnova cvičení Objekty v Javě Třída Konstruktor Metody Metody a proměnné třídy x instance Program sestávající.
Dílna Caché II. CSP pro pokročilé Tomáš Vaverka. Zdroje HTML Tag Reference v sekci Reference Material v dokumentaci Caché HTML Tag Reference v sekci Reference.
Uživatelské profily, vlastnosti uživatelského účtu
C# - předávání parametrů Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
Databázové systémy I Cvičení č. 8 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Dědičnost - inheritance dědičnost je jednou z forem znovupoužitelnosti dědičnost je jednou z forem znovupoužitelnosti B A Třída A je předkem třídy B Třída.
C# - Generic Collections Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
Šesté cvičení Výjimky Balíky.
Netrvaloppa21 Vytvořte třídu Student pro reprezentaci struktury student na ZČU. Atributy třídy budou fakulta a osobniCislo. Název třídy: Student proměnné.
GIMP Využití nástroje Cesty Michal Zerzáň
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ Zbyněk Šlajchrt Část 6.
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ Zbyněk Šlajchrt 1 Část 12.
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ Zbyněk Šlajchrt Část 7.
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ
Uživatelská rozhraní Uživatelská rozhraní 10. cvičení Martin Němec A
Technologie Enterprise Java Beans doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 /
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - PŘEDNÁŠKA Zbyněk Šlajchrt Část 10.
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA:
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ Zbyněk Šlajchrt Část 5.
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně AUTOR: Ing. Adéla Tomalová NÁZEV: Podpora výuky v technických oborech TEMA: Objektově orientované.
KIV/ZD cvičení 10 Tomáš Potužák.
Instalace Javy ( pro Windows )
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ
Prezentační nástroj Open Office, Impress ZÁKLADY PRÁCE
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ
NÁZEV ŠKOLY: Střední odborná škola Net Office, spol. s r. o
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ
Zkušenosti s nasazením J2EE aplikací na AS GlassFish
Návrhový vzor Flyweight
VYUŽITÍ ARCGIS API FOR JAVASCRIPT PRO PUBLIKACI MAPOVÝCH SLUŽEB ÚRM
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - PŘEDNÁŠKA
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - PŘEDNÁŠKA
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - PŘEDNÁŠKA
C# přehled vlastností.
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o., Orlová-Lutyně
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ
Transkript prezentace:

VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ Zbyněk Šlajchrt http://java.vse.cz/4it447/HomePage Část 11.

Program Aplikace Fotoalbum Práce s JMS Export fotografií do JMS fronty Import fotografií do další aplikace

Export a import fotografií Album JMS Provider (Glassfish – Open MQ) PhotoMan 1: výběr fotografií pro export 4:spuštění importu 5:příjem Exporter <<Stateless>> PhotoManager <<Application>> Queue 3: odeslání do fronty 2: dotaz do db 6:uložení fotografie DB Dir

Exporter EJB V modulu ejb vytvořte třídu beanu Exporter Tento bez-stavový bean má na starosti export vybraných fotografií do JMS fronty Metoda exportPhotos(from, to) vybere fotografie v daném datumovém rozmezí a vyexportuje je do fronty package cz.vse.javaee.album; import javax.annotation.Resource; import javax.annotation.PreDestroy; import javax.annotation.PostConstruct; import javax.ejb.EJBException; import javax.jms.*; import javax.ejb.Stateless; import javax.ejb.LocalBean; import javax.persistence.EntityManager; import java.util.Date; import javax.persistence.TypedQuery; import javax.persistence.PersistenceContext; import java.util.List; * k JMS frontě, kterou drží otevřenou až do okamžiku jeho likvidace (metoda destroy). * Tento bezstavový bean má na starosti export fotografií do JMS fronty. Při inicializaci vytvoří spojení /** */ public class Exporter { @LocalBean @Stateless @PersistenceContext private ConnectionFactory connectionFactory; @Resource(mappedName = "jms/exportQueueFactory") private EntityManager entityManager; private Queue queue; @Resource(mappedName = "jms/exportQueue") private Connection connection; @PostConstruct private void init() { } catch (JMSException e) { connection = connectionFactory.createConnection(); try { } throw new EJBException(e); private void destroy() { @PreDestroy connection.close(); throw new EJBException(); * @param to horní limit výběru - vyjma * @param from spodní limit výběru - včetně * Vybere fotografie v daném datumovém rozmezí a vyexportuje je do fronty. public void exportPhotos(Date from, Date to) { TypedQuery<Photo> query = entityManager.createQuery( "select p from Photo p where p.created >= :f and p.created < :t", query.setParameter("t", to); query.setParameter("f", from); Photo.class); List<Photo> resultList = query.getResultList(); MessageProducer producer = queueSession.createProducer(queue); Session queueSession = connection.createSession(true, Session.AUTO_ACKNOWLEDGE); BytesMessage photoMessage = queueSession.createBytesMessage(); for (Photo photo : resultList) { photoMessage.setStringProperty("description", photo.getDescription()); photoMessage.setStringProperty("name", photo.getName()); photoMessage.writeBytes(photo.getImage()); photoMessage.setStringProperty("albumName", photo.getAlbum().getName()); photoMessage.setIntProperty("version", photo.getVersion()); photoMessage.setStringProperty("created", photo.getCreated().toString()); producer.send(photoMessage); destroy(); } catch (Exception e) {

Úprava entity Photo Zaveďte nový atribut created typu java.util.Date spolu s příslušnými gettery/settery Nezapomenout na @Temporal(TemporalType.TIMESTAMP) Atribut je nastaven na aktuální čas private Date created = new Date();

Nová akce exportPhotos V servletu AlbumServlet zaveďte novou akci exportPhotos spolu s metodou doExportPhotos(HttpServletRequest request, HttpServletResponse response) v poznámkách private void doExportPhotos(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String fromParam = request.getParameter("from"); String toParam = request.getParameter("to"); try { getAlbumPageBean(request).exportPhotos(fromParam, toParam); } catch (ParseException e) { throw new ServletException(e); } request.getRequestDispatcher("upload.jsp").forward(request, response);

Úprava AlbumPageBean Akce exportPhotos je delegována z AlbumServlet kontroleru na AlbumPageBean, podobně jako ostatní akce. Zaveďte do AlbumPageBean nový atribut exporter typu Exporter Přidejte odpovídající argument do konstruktoru a použijte jej k inicializaci atributu exporter Přidejte metodu exportPhotos (v poznámkách) spolu se statickým atributem format Pozn.: AlbumPageBean svou povahou odpovídá vzoru BusinessDelegate private static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); public void exportPhotos(String fromParam, String toParam) throws ParseException { Date fromDate = format.parse(fromParam); Date toDate = format.parse(toParam); exporter.exportPhotos(fromDate, toDate); }

Injektáž Exporter do AlbumServlet AlbumServlet vytváří instanci AlbumPageBean, která nyní potřebuje navíc odkaz na Exporter Vytvořte nový atribut, do kterého kontejner injektuje odkaz na Exporter EJB. Předejte hodnotu tohoto atributu do volání konstruktoru AlbumPageBean

Stránka export.jsp Vytvořte JSP stránku export.jsp, která slouží ke spuštění exportu (viz poznámky). Do stránky upload.jsp přidejte link na export.jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Export fotek</title></head> <body> <h3>Export fotek</h3> <form action="album" method="post"> <input type="hidden" name="action" value="exportPhotos"/> <label for="from">Od (yyyy-MM-dd):</label><br> <input id="from" type="text" name="from"/><br> <label for="to">Do (yyyy-MM-dd):</label><br> <input id="to" type="text" name="to"/><br> <input type="submit" value="Exportuj"> </form> </body> </html>

Konfigurace JMS V administrátorské konzoli vyberte složku Resources/JMS Resources/Connection Factories Vytvořte novou továrnu připojení Pool Name – jms/exportQueueFactory Resource Type – javax.jms.QueueConnectionFactory Vyberte složku Resources/JMS Resources/Destination Resources Vytvořte novou frontu JNDI Name - jms/exportQueue Physical Destination Name – exportQueue Resource Type – javax.jms.Queue

Build & Deploy

Sledování Open MQ Open MQ je možné spravovat z příkazové řádky Adresář: glassfishv3/mq/bin Příkaz: imqcmd list dst vypíše stav všech JMS destinací

Aplikace PhotoManager Jednoduchá aplikace, která se přihlásí k exportní frontě pro výběr. Všechny zprávy interpretuje jako fotografie, které ukládá do adresáře specifikovaného jako první argument metody main(). Aplikaci si stáhněte z http://java.vse.cz/wiki/uploads/4it447/4it447- cviceni11-photoManager.zip

Ladění Java EE aplikace Je třeba spustit server v ladícím režimu Menu Configuration/JVM Settings v konzoli GF Nastavte příznak Debug na Enabled Server je třeba restartovat V IDE je třeba vytvořit vzdálený ladící profil V NetBeans menu Debug/Attach Debugger Debugger = Java Debugger (JPDA) Connector = Socket Attach Host = localhost Port = 9009 (nastavuje se na serveru v Debug Options) Pozor na firewall v OS. Debug port je někdy nutné explicitně povolit

Domácí úkol Aplikace Fotoalbum bude umožňovat export vybraných jednotlivých fotografií prostřednictvím JMS fronty. K výběru použijte checkboxy, které doposud slouží k označení fotografií ke smazání Pro účely tohoto úkolu rozšiřte funkcionalitu třídy Exporter