2014. augusztus 13., szerda

Java EE fejlesztői környezet kialakítása

A Java Enterprise Edition (EE) nem más mint a komoly nagyvállalati szoftverek készítésére szánt fejlesztői környezet.
Mivel a nagyvállalati szoftverek jellemzően valamilyen kliens-szerver architektúrát valósítanak meg, ezért szükségesek olyan komponensek a fejlesztői környezethez, amivel a nagyvállalati architektúrára készített alkalmazásokat futtatni lehet.
A JAVA desktop alkalmazásokhoz nem kell más, mint egy JRE (Java Runtime Environment) ami végülis maga a Java virtuális gép (Java Virtual Machine, JVM). Ez mindenképp szükséges ahhoz hogy a helyi gépen java programok futtassunk.

Példaként említhető talán a mindenki által ismert adóbevallás készítéséhez használt AbevJava nyomtatványkitöltő alkalmazás. Ha ezt futtatni akarjuk ahhoz szükséges a Java telepítése.

Az operációs rendszerünkhöz illeszkedő JRE telepítőt a Java oldaláról tudjuk letölteni, majd telepíteni.
Miután telepítettük a futtatási környezetet akkor rendszerünkben a java -version parancs kiadásával ellenőrizhetjük hogy működőképes-e a rendszerünk, tudunk-e Java programokat futtatni. A parancs kiírja az elérhető Java futtatási környezet verzióját. Amennyiben nincs elérhető java környezet, akkor értelmetlen parancsnak tekinti a rendszer az utasítást.
java -version parancs hatására megtudhatjuk hogy milyen verziójú futtatókörnyezet érhető el a számítógépen
Mint látható az én gépemen a Java SE 1.8 van telepítve. Ez azt jelenti hogy a számítógépemen tudok futtatni java programokat (pl remekül tudok adóbevallást készíteni az AbevJavával :) )

Az első lépés megvan. Igen ám, de mi nemcsak futtatni szeretnénk Java programokat, hanem készíteni is. Általánosságban elmondható hogy, ahhoz hogy egy adott nyelven megírt programot a számítógép számára futtathatóvá tegyünk, szükséges egy úgynevezett fordítóprogram (compiler), amivel a forráskódot át tudjuk alakítani olyan gépi kódú utasításokká, hogy azt a célszámítógép képes legyen végrehajtani.
Esetünkben szükséges egy Java fordító, ami a Java forráskódú programunkat átalakítja olyan kódsorozattá amit a célszámítógép, azaz a Java virtuális gép (JVM, ami a futtatási környezet része) végre tud hajtani. Ez a javac nevű program, ami a Java Development Kit (JDK, Java fejlesztői készlet) része. A JDK-t le lehet tölteni a Java honlapjáról, szintén az operációs rendszerünknek megfelelőt válasszuk.

Miután telepítettük a javac parancs kiadásával ellenőrizhetjük.

javac - version parancs kiadásával a java fordító verziószámát ellenőrizhetjük
Ezek után már tudunk java programot írni, azt le tudjuk fordítani és tudjuk futtatni is.
Próbáljuk is ki ezt a méltán híres "Hello world!" példaprogrammal.
A kedvenc szövegszerkesztőnkkel (ne a Word-el!!!) hozzuk létre a java forrásprogramot.

Én az alábbi példában a példa rövidsége miatt közvetlenül parancssorból fogom begépelni a kódot egy Linux terminálból. Windows alatt az első cat >HelloWorld.java parancs helyett a copy con HelloWorld.java parancsot kell kiadni. Nyilván nagy projekteknél nem ezt a módszert kell alkalmazni.

A híres Hello, Wolrd! program megírása, fordítása és futtatása
A programkészítés menetét is szépen bemutatja a fenti képernyőrészlet:

  • Szerkesztés (edit): először a program forráskódját készítjük el. Ekkor standard ASCII szövegfájlt kell készítenünk, tehát erre a célra nem a Microsoft Word a legjobb megoldás. A példában egy egyszerű terminálparanccsal billentyűzetről közvetlenül a fájlba küldtük a begépelt karaktereket, majd a kód beírása után a CTRL-Z billentyűkombinációval tudjuk a fájl vége karaktert beírni és a szerkesztést befejezni. Ekkor előáll a forráskód, amit a fordítóval lehet tovább kezelni.
  • Fordítás (compile): a fordítási művelet a forráskódot átalakítja a célgép számára értelmezhető utasítássorozattá. Java esetében az úgynevezett bájtkódot kell előállítani, amit a Java virtuális gép (ez a célgép) végre tud hajtani. A fordítást az előzőekben a JDK telepítése után a rendszerünkben elérhetővé vált javac paranccsal tudjuk végrehajtani. Paraméterül a HelloWorld.java fájlt adjuk meg természetesen. A kiadandó parancs: javac HelloWorld.java
    A fordítás eredményeként létrejön a HelloWolrd.class fájl, amit már a JVM végre tud hajtani.
  • Futtatás (run): a fordító által létrehozott programot már tudjuk futtatni mégpedig a JRE telepítése kapcsán rendszerünkben elérhetővé vált java parancs segítségével. Paraméterül kiterjesztés nélkül kell megadni a .class fájlt. Esetünkben a parancs: java HelloWorld
    Eredményül a program kiírja a Hello, World! szöveget, majd kilép.
A cikk címe szerint Enterprise fejlesztői környezet kialakításáról kellene szólni és eddig csak egy desktop parancssori alkalmazást készítettünk. Valójában már most kész a rendszerünk és tudunk Java EE programot készíteni, hiszen a Java futtató és fejlesztői környezet képes erre. Azonban a szerver oldalon picit másképp történik a java szerver oldali programok futtatása. Valójában nem közvetlenül a JVM vezérli a program végrehajtását, hanem egy úgynevezett alkalmazás szerver (AS, Application Server). Ez egy olyan konténer, melyben a szerver oldali java alkalmazások betölthetők, majd a hálózaton keresztül érkező kérésekre reagál. Jellemzően HTTP kérések érkeznek a kliensek felől, amit az AS fogad, majd átad az általunk megírt szerver oldali komponensnek. Ez a komponens elvégzi a kért műveletet, majd egy HTTP üzenetként visszaküldi a kliensnek az eredményt. A kliens fogad és a kliens oldali komponens megjeleníti az eredményt.
Nagyjából ezek a lépések. Ahhoz hogy mindezt fejlesztőként meg tudjuk csinálni szükségünk van egy alkalmazás szerverre (AS) is. Csinálhatnánk úgy is hogy a szerver oldali részt lefordítjuk, majd feltöltjük egy távoli AS-re és a kliensünkkel rácsatlakozunk. Ennél sokkal jobb megoldás, hogy a saját gépre telepítünk egy AS-t és azon futtatjuk a komponensünket. Na ez az ami hiányzik a valódi Java EE fejlesztői környezethez.
Többféle AS létezik ami ki tud szolgálni Java komponenseket. Kettőt említek meg és abból egyet fogunk bekonfigurálni. Az egyik a GlassFish nevű, valóban nagy teljesítményű és professzionális alkalmazás szerver. Az Oracle fejleszti és ez a Java referencia szerver. 
Ennél egyszerűbb, de továbbra is nagy teljesítményű eszköz az Apache webszerver fejlesztőitől az Apache Tomcat nevű alkalmazásszerver. Konfigurálása, futtatása egyszerű, ezt fogom bemutatni a következőkben.

A Tomcat telepítése nagyon egyszerű. Le kell tölteni a szükséges verziót az Apache honlapról és ki kell csomagolni.
Ezután a Tomcat könyvtár alatt lévő bin könyvtárba létre kell hozni egy setenv.sh (windows alatt setenv.bat) parancsfájlt, amibe csupán ki kell adni néhány környezeti változó beállítására szolgáló parancsot. Linux esetében ezt tartalmazza a fájl:

#!/bin/sh
CATALINA_HOME=/tomcat-elérési-utja/bin
JRE_HOME=/var/lib/jre/java-8-oracle

Ezek után a tomcat könyvtárán belül a bin könyvtárban ki kell adni a ./startup.sh parancsot. Ez elindítja a Tomcat-et:


Apache Tomcat indítása
Ezek után a Tomcat figyeli a 8080-as porton érkező HTTP kéréseket. Ezt ellenőrizhetjük ha a böngészőnkbe behozzuk a http://localhost:8080 URL-t.

Fut a Tomcat és válaszol a 8080-as porton

Amennyiben ezt elértük, akkor készen vagyunk az Enterprise alkalmazások futtatására. Nyilván ha adatbázissal dolgozunk akkor kell valamilyen SQL szerver (MySQL, Postgress) is, de az már alkalmazás specifikus dolog.

Ami még a professzionális fejlesztéshez kell, az egy professzionális integrált fejlesztői környezet (IDE). Erre a célra az Eclipse-t javaslom.
Ennek telepítése sem bonyolult. Le kell tölteni az Eclipse honlapjáról a Java EE developer IDE-t és ki kell csomagolni. Ennyi.

A végén meg kell említenem a http://appdev.bedok.hu/cikk/ECLIPSE_JAVA cikket, ahol rengeteg jó ötletet és gondolatot találtam az EE fejlesztéssel kapcsolatban. Egy részét az ott leírtaknak felhasználtam a cikkben. 


Nincsenek megjegyzések:

Megjegyzés küldése