Alkalmazás szerver és Enterprise Java Beans
Nagyon reméltem, tehet anélkül, hogy telepíteni IDE, de sajnos az idő nem állt meg, és a már lehetetlen használni egy ilyen rendszert. Ilyen alkalmazásokhoz kell csinálni a sok kézi munkát, amelyet az jellemez, egy kifejezést „az erdőben a fák láthatók.”
Megpróbálok nem hagyja meg a sötétben bizonyos kérdésekben - akár teljesen generált kódot igényel megértést. De ez így megy.
Azt javaslom, hogy töltse le elég erős csomag - (nos, ez ingyen volt) - IDE NetBeans 6.0. Töltse le a csomagot lehet az ssylkeNetBeans 6.0
Azt tanácsolom, (és kitartóan kérje) feltölteni a teljes verzió. Igen, ez nem kicsi - 169 MB - de nem fogja megbánni. Ezen kívül minden példát leszek kiadások csak az említett változat.
Elvileg akkor töltse le a változata «Web Java EE», de még mindig egy sor cikket tovább fog növekedni. És talán eljutunk a SOA (Service Oriented Architecture). Ez egy nagyon fiatal technológia, amely kialakítja az elkövetkező években. És ha van ideje, hogy megértsék az alapvető elveket és megismerjék a főbb pontokat, melyek révén a szakmai fejlődés ugrást.
Telepítése NetBeans nem okoz Önnek problémát, így ebben a pillanatban nem fogom abbahagyni. Az egyetlen kikötés Installation - Legyen óvatos, amikor beállítja a paramétereket a GlassFish - mármint a felhasználónév / jelszó. Elvileg vehet az alapértelmezett parmetry:

GlassFish - Ez Application Server, amely együtt jár a NetBeans fejlődését V GlassFish - egészen sovremennyyApplication Server, amely támogatja a legújabb technológiákat V Isamu elmúlt leírások Tehát élvezni és érezd jól magad.
És még egy dolog - azt tanácsolom neked - hozzon létre egy jelszót a root felhasználó a MySQL - nem nehéz. Szükség lesz futtatni nizheprivedennyySQL és nem több gond.
. GRANT ALL ON diákok * A 'root' @ '%' amely a 'root';
= Root jelszó lett
Sokszor találkozott. hogy egyes rendszerek nem igazán érti a helyzetet, ha nincs jelszó. Tehát a problémák elkerülése érdekében, hogy ezt az egyszerű műveletet.
És most fogunk beszélni, mi a Application Server.
Ez a probléma feltételezi appication Server. A Java ma talán a legfejlettebb rendszer, amelynek értelmében az ilyen típusú sozdazhyutsya Application Server”.
Sun létrehozott egy szabvány, amely meghatározza a szolgáltatások és a szabályokat, amelyek kell működnie AppServer.
Ez az első alkalom, azt tanácsolom, hogy AppServer egyfajta adattár osztályok, amelyek csak a regisztrált rá egy különleges módon nevek alatt (igen, ez a JNDI hogy találkoztunk néhány évvel ezelőtt). Korábban, a regisztráció volt szükséges, hogy hozzon létre egy speciális XML-fájl - ejb-jar.xml. Még akkor is voltak különleges eszközökkel folyamat automatizálásával. Az új specifikáció még egyszerűbb. Mi hamarosan kiderül.
A kliens alkalmazás megkérdezi AppServer'a osztály megnevezés, hogy ez (kivéve persze, hogy van), és használ.
És ez az osztály végzi szabályozása alatt AppServer'a. Ez AppServer veszi a feladatot indít egy osztály egy külön téma, úgy a feladatot szállítási mindenféle források - csatlakozni egy adatbázis, Web-Services kéri, és így tovább. A kliens kap egy hivatkozás egy felület, amely mögött elrejti a valódi osztály. És az ügyfél kap az ApplicationServer'a ezt a linket.
Talán majd jön vissza, hogy megvitassák a lehetőségét AppServer'ov, de elég szó.
Itt az ideje, hogy beszéljünk egy kicsit a futó alkalmazások ellenőrzése alatt AppServer'a. Nevezetesen, az Enterprise JavaBeans - EJB.
Mi fog működni EJB 3.0. A specifikáció EJB 3.0 vált érettebb és kényelmesebb vele dolgozni. Ha azt szeretnénk, hogy megismerjék a régebbi leírások, akkor megy oldalakat az interneten, és információt keresni. De ez már túlmutat e cikksorozat.
Önmagában a bin önmagában nem minden problémát - ez csak egy osztályt, amely regisztrálva van AppServer'e és van egy bizonyos sor jellemzőit.
Három fajta bab:
- Entity Bean - mielőtt ők felelősek az adatok megőrzésével az adatbázisban. De ma nem tudták bizonyítani, hogy szükség van. Helyükre egy sokkal kényelmesebb megoldás. A név általában továbbra is, de azt mutatja, már az órákon. amelyeket „térkép” az adattáblák az osztályban területeken. Ez nagyon hasonlít a Hibernálás annak ideológiája (azok számára, akik ismerik a Hibernate)
- Session Bean - olyan osztályok, hajtsa végre a logika. Ezek nagyon fontos és szükséges.
- Message-Driven Bean - ezek babot nevezik majd, amikor minden üzenetet. Róluk még nem fog beszélni. Talán a jövőben.
Application Server is tartalmaz egy felületet, amely megvalósítja a bin. És akkor be kell nyújtani a kliens felületen. És a bin élj gyomrában a szerver.
Mi fontos még, hogy megértsük az, hogy a bab hívást. Mert valójában ők minden csendes és nyugodt hazugság határain belül AppServer'a okozza őket, és az utasításokat a vásárlók. A legelső specifikáció, úgy döntöttek, hogy minden ügyfél külön Java-gép. De ez a kihívás nagyon „drága”. Szükség van néhány olyan mechanizmust, amely az adatok átvitelére egyik JAVA-gépről a másikra. Egy nagyon erőforrás-igényes megoldás. Ezért úgy döntöttek, hogy szükség van a két típusú hívások - helyi és távoli (helyi és távoli).
Helyi hívás történik, ha egy ügyfél maga is lényegében azonos bab AppServer'e. Remote - mint korábban, ez egy másik Java-gépen.
Ez a cikk nem tesz kísérletet, hogy dolgozza ki a lehetőségeket, és elméleti konstrukciók - itt fogunk összpontosítani gyakorlatban. Ezért halasztják komplex EJB könyvek az egyik oldalon, és írni az első alkalmazás.
RazrabotkaEnterpriseprilozheniya
Kezdjük az alapoktól. Igen, igen. Akkor felejtsd el a csodálatos kódot, és hagyja csak a MySQL adatbázis, amire szükségünk van.
Talán fogjuk használni JSP és egy bizonyos mennyiségű logikáját servlet. Minden mást meg fog változni elég erősen.
Jelenleg bizonyos mértékig, a fogalom Enterprise Application fejlődött. Természetesen a tartalmát a táblák és a táblák maguk az üzleti logika - tisztán személyes ügy. De van néhány dolog, ami közös. Ezek figyelembe vesszük. Egy kicsit később, és Uvidm a mi „személyzeti osztályon.”
A fő összetevői Enterprise-alkalmazás:
Ebben a részben nem fogjuk megteremteni a keresetet teljes egészében. Az első helyen - túl sok anyag. Másrészt - Van egy titkos vágya, hogy te magad próbáltak tenni valamit. Lehetőség van arra, hogy mire az akarat volt írva a részét, ahol azt, hogy mi alkalmazás több vagy kevesebb dolgozó, te magad is neki levelet. Én nagyon szívesen hallani róla.
Nos, nézzük futni NetBeans.
Ha nem ez az első alkalom, egy csodálatos kép jelenik meg előtted.

Nem fogjuk érdemben tárgyalja hosszú hibáit és NetBeans. Vegye ki a bikát a szarvánál.
1. Válassza ki a menüpontot File-> New Project ...
A megjelenő párbeszédpanelen válassza ki a kategóriák fa Enterprise. A projektek listája Válassza ki az első tételt-Enterprise Application. Kattintson a Tovább gombra

2. Írja be a nevét a projekt StudentsApp majd kattintson a Befejezés gombra.
Megjegyzés az elérési utat a projekt ellenőrzött tételek „Create EJB modul” és a „Create Web Application Module”.
Ahogy talán már sejtette ezek a részek, hogy azt már említettük - Application Server és webkiszolgáló.

3. Meg kell látni a képernyőn van. Azt tanácsolom, hogy séta a projekt fa. Csak kíváncsiságból.

Már egyértelműen azt mutatja, hogy a Enterprise-alkalmazás tartalmaz két modul - EJB és az interneten. Azt ajánlom megszokni gondolni őket folyamatosan
Menjünk tovább. Most fogunk létrehozni két osztály (Entity), hogy lesz egy „reflexiós” táblázatunk - csoportok és a diákok. Ehhez kattintson jobb gombbal a projekt StudentsApp-ejb, válassza ki a New-> Entity osztályba adatbázisból. Megnyílik egy párbeszédablak, amely ki kell választani a adatforrás. Meg kell adatforrás persze még így válassza ki az elemet NewData Source (lásd. A rajzon)

Ebben az esetben ismét felajánlja egy párbeszédablak, ahol szükségünk van a paramétereket újra és ott újra kell választani NewDatabase Connection.

Ismét NetBeans segít megmutatni egy másik ablakban. Itt már be a kívánt paramétereket a kapcsolatot.
VIGYÁZAT. Állítsa be a zászlót a négyzetet „Jelszó” - különben a kapcsolat nem fog működni.

Ha nem hibázik a beállított, akkor kell kiadni, itt van egy ablak (vagy inkább ez ugyanaz az ablak, csak a következő lapon)

Azt az OK gombra, bejutni az ablakon létrehozásának adatforrás, ahol a paraméterek a mi adatforrás fog szerepelni. Ismét az OK gombra.
Ha nem hibázni, akkor előtted szokatlan, és itt jelennek meg ilyen van egy ablak

Mi át mindkét asztal jobbra és kattintson a Tovább gombra.
Most előtted van, hogy az információt. Felhívjuk figyelmét, - már nem távolítja el a pipa a négyzetbe „Generate Nevezett Kérdés Jegyzet az állandó Fields”.
Us ilyen jellegű kérdések nem kell (vagy legalábbis még nem), de nem veszít semmit a J
Fontos megjegyezni, a csomag neve, amit megadott. Akkor természetesen használhatja a saját, de akkor meg kell, hogy vegye ezt figyelembe.
Nem ajánlom, hogy megváltoztassuk az osztály nevét - a probléma az, hogy a szó Group fontos, és nem ajánlott a használata. Tehát foglalni, többes számban. Mellesleg ez egy emlékeztető számunkra (ismét), hogy nem használja a „gyanús” szót neveket. „Gyanús” - ez azt jelenti. úgy lehet használni, mint a kulcsszavak bármilyen nyelven. Általában az előtagot uraim

Kattintson a Befejezés gombra, és látni, hogy mi volt a két osztály - Csoportok és diákok. Nem adom nekik a kódot. Először nem akarja, hogy rendetlenséget a cikk szövegében, másrészt - de általában, mi ő kevés érdeklődést. Ő keletkezett és még ez is elég.
Azt is felhívta a figyelmet, hogy a Nap-resources.xml fájlt (nézd meg azt a fa van) - látni fogja a csodálatos lehetőségeket. Ha jobban megnézed, kiderül, és az URL-t csatlakoztatni, és jelentkezzen be és jelszavát.
De ez még nem minden, hogy meg kell dolgozni az adatbázisban. Az EJB 3.0, volt olyan dolog, mint a Folytonosság egység. Valójában ez egy XML fájl, amely leírja a beállításokat az adatbázishoz csatlakozáshoz. Miután ezt létrehoztuk, és beszélni róla.
Tehát, nyomja meg ismét a jobb egérgombbal az StudentsApp-ejb, válassza ki a New-> Egyéb (valószínűleg nem lesz pont PersistenceUnit, de ha ez - csak válassza ki azt). A megjelenő ablakban válasszuk ki a Perzisztencia és perzisztencia egység. Kattintson a Tovább gombra.

A varázsló következő ablakában fogjuk látni a képet, amelyet az alábbiakban mutatjuk be. Ügyeljen arra, hogy a beállított paraméterek. Először is, ez adatforrás. Ez a listából kiválasztott, és az egyik, hogy a korábban létrehozott. Második csoport „táblázat Generation stratégia” beállítása Nincs. Táblázat már van úgy, hogy nem kell, hogy hozzon létre a semmiből.
Azok számára, akik már tudják, mi Hibernate - ez is a Folytonosság szolgáltatók listáját. De erről majd máskor. Amíg vesszük az alapértelmezett beállítás - TopLink.

Közvetlenül létrehozását követően megtekintheti a létrehozott fájlok - nézd, nézd a megszokott funkciókat.
gondoljuk végig, hogy mit hoztunk létre az. Dióhéjban, tettünk a következő:
- Hozzon létre egy fájlt, amely információkat tárol az adatbázishoz csatlakozáshoz. Ami nagyon fontos. Nos, ez az információ felhasználható AppServer'om együttműködni az adatbázisban. És nem kell aggódnia, hogy többé nem szükséges.
- Azért hoztuk létre a két osztály, amely a probléma -, hogy tartsa az adatokat a táblázatban. Ie Minden sorban a táblázat csoportok perdstavlena csoportok célja, hogy melyik osztály tudjuk elérni a mezőket. Ne feledje, hogy munkánk létre set / get módszerekkel. Most már minden sdalat automatikusan. Bár NetBeans érdem helyett az EJB, még mindig szép.
Mi marad számunkra, hogy teljes mértékben helyreállítani a logikája az alkalmazás. Azt hiszem. hogy már bolshinstvo az sejthető - meg kell hozzon létre egy osztályt, amely managementSystem a szükséges technikákat szerkesztő és adatok lehívása. Tegyük hozza létre.
Az igazság az, most már nem csak az osztályban, de SessionBean osztály hogy fut AppServer'a. És minden előnyét élvezhetik ennek.
Ismét az első gomb StudentsApp-ejb, válassza ki a New-> Session Bean ...
Ismét szembe egy párbeszédablak, ahol írja be a nevét az osztály ManagementSystem. Alapértelmezésben, akkor ki kell választani a helyi-only interface. I-hez, hosszú szabadság van - tudjuk elég puskapor, hogy elérje udalennogoJava létre egy külön kliens, de akkor nem akadályozza meg, hogy hozza létre.

Kapunk csak két fájlt:
- Közvetlenül Session Bean - ManagementSystemBean.java, amely végrehajtja (végrehajtja a logika)
- Helyi interfész ManagementSystemLocal.java
Nézzük most létre egy egységes módszer - getStudents. Vissza fog térni hozzánk a diák az ő azonosítója.
Mellett jelenik meg párbeszédablak, melyben bemutatjuk a módszer neve, vissza típusát és hozzá egy bemeneti paramétere (A Hozzáadás gombra a jobb oldalon). Írja be a nevét és típusát a beállítást.

De mindaddig, amíg a kódot az adatbázis eléréséhez, mi nem. Tehát mi megkapjuk a jó tanuló. Kiderült az is nagyon egyszerű.
És most fogok bemutatni a kódot osztályunk ManagementSystemBean.java
Abstract @PersistenceContext lényegében teremt kontextust, amelyben a munka elvégezhető az adatbázissal. Sunpostaralsya, amennyire csak lehetséges „nyomja vissza” a fejlesztők irkál kódot, és cserélje mindenféle hívások csatlakozni egy ilyen egyszerű formában van.
Class EntityManager - interfész (ha megnézi a JEE API). Mint már tudjuk a felület nem tud semmit. Tehát nekik rejlik a valódi osztály. Ki tudja, hogyan kell dolgozni az adatbázissal.
Így a gyűjtő nem sok dolog: ez hozza létre és inicializálja a tárgy egy bizonyos osztály (amely az objektum létrehozásakor hivatkozva AppServer'u), amely végrehajtja a EntityManager felületen. Ha jobban megnézed faylpersistence.xml (lásd XML kód nem opció, és a design), látni fogja a tétel Perzisztencia Szolgáltató - a végrehajtás az interfészen. Alapértelmezésben a TopLink.
Általában a jelentős lépéseket annak érdekében, hogy futtatni a kérelmet AppServer'u tettünk. Továbbra is csak a hozzá a WEB-interfész formájában egy egyszerű servlet - így, aki akadályoz minket?
Csináljunk egy nagyon egyszerű WEB-alkalmazás. Nézzük az első oldalon egy űrlap bevitelére Tanulóazonosító és egy gombot, hogy hívja serveleta, amely megmutatja nekünk az adatokat a hallgató.
Nyissa meg a projektet StudentsApp háború, és megtalálja a index.jsp fájlt. Mi lesz, hogy néhány változtatást is.
Ő most így néz ki:
<%@page contentType=»text/html» pageEncoding=»UTF-8″%>