GlassFish

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
GlassFish
Logo
Vývojář Oracle Corporation (započal Sun Microsystems)
Aktuální verze 4.0 (12. červen 2013)
Operační systém multiplatformní
Vyvíjeno v Java
Typ softwaru Aplikační software
Licence Common Development and Distribution License & GNU General Public License
Web glassfish.org

GlassFish je aplikační server vyvinutý společností Sun Microsystems pro platformu Java EE. GlassFish se řadí mezi open source podléhající licencím GPL a CDDL. GlassFish je referenční implementace, to znamená, že není primárně určen pro provoz aplikací, ale slouží především jako ukázka implementace nových rysů v poslední specifikaci platformy JAVA EE. Současná verze serveru GlassFish je 3.1.2 a slouží jako referenční implementace proj Javu EE6. Existuje rovněž komerční verze, která nese označení Oracle GlassFish Server 3.1.2. Obě verze se ve funkcionalitě téměř neliší, hlavní rozdíl je především v podpoře a automatickém stahování aktualizací.

Historie[editovat | editovat zdroj]

Počátek serveru GlassFish se pojí s rokem 2005, kdy byl započat projekt, jehož cílem bylo vytvořit plně certifikovaný Java EE server. První verze byla vydána v květnu 2006 a hodně zdědila z aplikačního serveru Tomcat. Druhá verze byla vydána v září 2007. Rozdílem oproti předchozí verzi byla především zvýšená podpora clustrování. Třetí verze byla vydaná 10.12.2009 a slouží jako referenční implementace pro Javu EE6. Mezi nejdůležitější vylepšení patří především ulehčení migrace aplikací z aplikačního serveru Tomcat. Rychlé startování (server na rozumné hardwarové konfiguraci nabíhá do pěti vteřin) a pluginy pro vývojová prostředí NetBeans a Eclipse umožňující snadnější deploy při menších změnách. V plánu je již verze 4.0 a i ta by měla stále zůstat open source. [1]

Architektura[editovat | editovat zdroj]

Architektura aplikačního serveru je založena na modulovém jádru vycházejícího z OSGi (Open Service Gateway initiative) frameworku. GlassFish většinou využívá implementace Apache Felix, ale může běžet i na implementacích Equinox, či Knoperfish OSGi. OSGi framework zajišťuje, že aplikace i komponenty lze vzdáleně instalovat, startovat, ukončovat, aktualizovat i odinstalovat bez nutnosti restartu serveru. Rovněž je důležité zmínit Grizzly framework, multiprotokolový framework (HTTP, UDP atp.), využívající NIO (Non-blocking I/O) a poskytuje API pro komunikaci socketů.

Instalace[editovat | editovat zdroj]

Server můžete stáhnou např z http://glassfish.net. Po spuštění instalace vás čeká obligátní odsouhlasení licenčních ujednání a nastavení cesty instalace. Následně vás čekají administrátorská nastavení. Doporučuji ponechat stávající nastavení admin port:4848 a http port:8080, bez hesla. Dále vás čeká nastavení úložiště vašeho JDK (mělo by být nalezeno automaticky) a samotná instalace může proběhnout). Na konci vás ještě instalátor požádá o registraci, která však není povinná.

Spuštění serveru[editovat | editovat zdroj]

Po instalaci stačí již server spustit. V instalovaném adresáři zvolíme cestu glassfish/bin/ a zde spustíme dávkový soubor startserv.bat. Po spuštění serveru můžeme vstoupit do administrátorské konzole spuštěním webového prohlížeče a zadáním adresy http://localhost:4848 (při zachování standardního nastavení). Administrátorská konzole je společné rozhraní jak pro administrátory, tak i pro vývojáře. Umožňuje správu konfigurací, nastavení JDBC (rozhraní pro spojení s databází, JDNI (rozhraní Java Name and Directory Interface), JavaMail, JMS (Java Message Services), Security Realms (nastavení bezpečnosti),..

Ukázky funkcionality GlassFish[editovat | editovat zdroj]

Deploy aplikace[editovat | editovat zdroj]

Pro nahrání aplikace, či komponenty na server vybereme v administrátorské konzoli v levém panelu možnost Application. V následujícím okně vybereme možnost deploy, vybereme zda se aplikace, či komponenta nachází na našem počítači, nebo je umístěna na serveru (pokud je server na stejném počítači jsou obě možnosti jsou totožné) a pomocí browseru vybereme sbalenou aplikaci (soubory .jar, .war). Pokud nám nevyskočí Typ aplikace, či komponenty automaticky zvolíme jej v položce Type. Po stisku tlačítka ok již můžeme v sekci Application s aplikací nakládat podle vlastního uvážení. U spustitelných aplikací nám je nabídnuta možnost Launch, která aplikaci spustí.

Java Mail[editovat | editovat zdroj]

Pokud chceme v naší aplikaci využít odesílání emailu. Použijeme k tomu GlassFish modul Java Mail. Pro jeho nastavení zvolíme v administrátorské konzoli možnost Resources a následně v této nabídce JavaMail Session. Zde zvolíme tlačítko New a vytvoříme novou session. Tu si podle vlastního uvážení pojmenujeme např : mojeMailSession. Následující parametry nastavíme následovně (příklad je pro web server gmail):

  • Mail Host – zde zadáme SMTP host server : smtp.gmail.com
  • Default User – zde zadáme jméno uživatele, ze kterého chceme standardně odesílat zprávy : abcd@gmail.com.
  • Default Return Address – Tuto emailovou adresu využije aplikační server, pokud zpráva neobsahuje adresu odesílatele. Ve většině případů se bude shodovat s jménem uživatele: abcd@gmail.com.
  • Description – Popis. Nemusíme vyplňovat
  • Status – Nastavíme na Enabled.
  • Store Protocol a Store Protocol Class – zanecháme současné hodnoty.
  • Transport protocol – v případě gmailu, či jiných serverů využívajících smtps změníme na: smtps
  • Transport class – pokud měníme položku transport protocol na smtps, změníme i třídu na:

com.sun.mail.smtp.SMTPSSLTransport

Pokud server vyžaduje autorizaci (pravděpodobně ano), musíme ještě přidat vlastnosti (properties) pro autorizaci.Toho docílíme pomocí tlačítka add propery.

Zde přidáme následující vlastnosti:

  • mail-smtps-auth – nastavení zdali server vyžaduje autorizaci zadáme: true
  • mail-smtps-password – do tohoto pole zadáme naše heslo: abcd

V Java aplikaci pak můžeme využít dependency injection a pomocí anotace

@Resource(name = "mojeMailSession")
private Session mojeMailSession;

Pro odeslání zprávy pak pouze vytvoříme zprávu.

Message message = new MimeMessage(mojeMailSession);

Vyplníme ji potřebnými údaji a odešleme pomocí třídy Transport:

Transport.send(message);

Více informací viz [2]

JDBC[editovat | editovat zdroj]

Pokud chceme v aplikaci pracovat s databází, zvolíme v levém panelu možnost Resource – JDBC. V referenční implementaci je standardně využíváno databáze Derby. Pokud chceme využít jiné databáze vybereme možnost Connection Pools a zde zvolíme tlačítko New. A následně vybereme v možnosti Database Vendor tu databázi, kterou chceme využívat. Pokud jsme spokojeni s Derby, či jsme nastavili jinou možnost pomoci Connection Pools zvolíme možnost JDBC Resources. Pomocí tlačítka New vytvoříme nový zdroj. JDNI name pojmenujeme náš zdroj podle vlastního uvážení např : mojeDB

Pool name vybereme pool, jaký chceme využívat (typicky Derby pool)

Nyní musíme databázi spustit (např v NetBeans Services-Database-jdbc:derby://localhost:1527-Connect) a můžeme s ní pracovat. Pro vzorový příklad nadefinujeme v enterprise beanu soubor persistence.xml.

  Vzorový soubor persistence.xml :

<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="databaze">
<jta-data-source>mojeDB</jta-data-source> 
</persistence-unit>
</persistence>

A následně perzistenční jednotku injektujeme do jednotlivých tříd

@PersistenceContext(unitName = "WebEmail")
private EntityManager entityManager;

Poté můžeme využít databázi ke svému prospěchu např :

Query query = entityManager.createQuery("select a from Email a ");
List <object> list = query.getResultList();

Reference[editovat | editovat zdroj]

  1. https://glassfish.dev.java.net/roadmap/ Plán vývoje dalších verzí GlassFish
  2. http://spitballer.blogspot.com/2010/02/sending-email-via-glassfish-v3.html Nastavení Java Mail

Literatura[editovat | editovat zdroj]

Gonclaves Antonio : Beginning Java™ EE 6 Platform with GlassFish™ 3: From Novice to Professional, Appres 2009, ISBN 978-1-4302-1954-5

Externí odkazy[editovat | editovat zdroj]