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 pro 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 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]