JBoss: Pod kapotou Enterprise JavaBean (EJB)

jboss logo
V poslední podčásti seriálu o JBossu věnované EJB komponentám si ukážeme, jakým způsobem je možné použít dynamický proxy objekt, seznámíme se se způsobem předávání volání na server a ukážeme si, jak je možné upravit existující konfiguraci EJB kontejneru. Napíšeme si také vlastní zachytávače volání.

JBoss: EJB a transakce

Transakce je pojem relativně často zmiňovaný a má to svůj dobrý důvod. Transakce by měla být základním kamenem J2EE aplikací. Tento díl představuje transakce v aplikačním serveru JBoss z pohledu business komponent. Ukážeme si, jakým způsobem můžeme využít server pro automatické řízení běhu transakcí.

Enterprise Java Beans & Java Persistence API

Záznam mojí přednášky o EJB a JPA.

Leakující streamy

Nedávno jsem opravoval jednu svojí botu, která byla způsobena tím, že jsem předpokládal, že JDBC driver resp. PreparedStatement uzavírá po ukončení transakce předaný InputStream. Bohužel nic takového se neděje. Naše speciální implementace InputStream se chovala tak, že určitou část dat si držela v paměti a zbytek odswapovala do souboru v tmp...

Entity beans v JBoss a relace

Nadešel čas seznámit se s dalším typem business komponenty, s entity beans. Entitní komponenty mají za úkol perzistenci dat, bez které se většina aplikací neobejde. Zachovávají vlastnosti objektového programování a přitom se pohodlně ukládají do relační databáze. Jak to celé funguje?

Entity beans v JBoss

Nadešel čas seznámit se s dalším typem business komponenty, s entity beans. Entitní komponenty mají za úkol perzistenci dat, bez které se většina aplikací neobejde. Zachovávají vlastnosti objektového programování a přitom se pohodlně ukládají do relační databáze. Jak to celé funguje?

Testování EJB komponent

Všeobecně známý fakt, že se EJB komponenty špatně testují, je postaven zejména na tom, že neexistuje žádný standardní způsob, jak při psaní testů postupovat. Pokusím se sepsat způsoby, jak tento palčivý problém vyřešit.

Pracujeme s Java Persistence API - tutoriál

Java Persistence API je špecifikácia, ktorá sa snaží štandardizovať objektovo-relačné mapovanie - teda mapovanie objektov na databázové tabuľky. Jej hlavným zdrojom inšpirácie je Hibernate a práve na tomto nástroji si ukážeme jeho použitie. Obsiahly tutoriál prináša popis základných tried, filozofie práce a značné množstvo príkladov...

Komponenta Session beans v JBoss

jboss logo
V tomto dílu seriálu se podíváme na jeden ze tří typů business komponent, na session beans. Tento typ komponent jsme v minulých dílech již několikrát používali, aniž bychom je nějak podrobněji zkoumali. Ukážeme si možnosti session beans ve verzi 3.0 a jak je s jejich pomocí možné stavět enterprise aplikace.

Výhody a nevýhody EJB

Dost často kolem sebe slyším při rozhovorech o vhodných technologiích pro určitý projekt, že použijeme EJB, tím se nedá nic zkazit. Je to prověřená technologie, je to dostatečně enterprise, je to standard, takže vlastně nejsou žádné důvody, proč to nepoužít. Já si myslím, že těch nevýhod může být celkem hodně. V tomto článku bych rád některé...

JavaEE design patterns pro Javu 5.0 a EJB 3.0 (Data Access Object (DAO))

Předávám odkaz na blog, který vznikl v rámci diplomové práce. Cílem práce je projít jednotlivé návrhové vzory z katalogu Core J2EE Patterns (http://java.sun.com/blueprints/corej2eepatterns/Patterns/) a zhodnotit jejich použitelnost vzhledem k novým prostředkům JavaEE 5.0 a EJB 3.0. Prvním z probíraných vzorů je Data Access Object. Jakékoliv...

EJB 3.1 první verze specifikace je venku

Když jsem si tu dělal minule trochu legrace z EJB 3.1 ani ve snu by mě nenapadlo, že brzo spatří světlo světa první verze specifikace. Dnes budu volit trochu smířlivější rétoriku. Ač jsem byl hodně skeptický ohledně EJB 3.1 a přišlo mi, že tuto technologii nikdo nepotřebuje tak musím uznat, že by mohla vyřešit hodně současných problému v EE...

EJB 3.1 -ještě větší zjednodušení

Právě přichází nestor telemarketingu Horst Fuchs se svojí lehce přitroublou společnicí Gáby, aby nám ve svém pořadu Telekrám předvedl převratné EJB 3.1.

EJB 2.x - Session Beans (implementácia - 2. časť)

EJB kontajner by mal manažovať zásobník SB inštancií takým spôsobom, aby čo najefektívnejšie obsluhoval požiadavky klientov. V závislosti od nastavenia a počtu požiadaviek sa kontajner dynamicky rozhoduje, kedy bude nová inštancia vytvorená, priradená klientovi, pasivovaná, aktivovaná alebo ukončená. V tomto článku sa pozrieme na životný cyklus...

EJB 2.x - Session Beans (implementácia - 1. časť)

Home rozhranie pre session beans deklaruje metódy určené na vytváranie a mazanie session objektov. Na rozdiel od entity beans nie je možné v home rozhraní deklarovať vyhľadávacie metódy, respektíve home metódy. V prípade finder metód by to ani nemalo zmysel, pretože identita session objektu je z pohľadu klienta ukrytá. Keď klient potrebuje získať...

EJB 3 – injektujeme SFSB

(aneb vstřikujeme zrnka sezení plná stavu)Konečně jsem našel odpověď na otázku, která už mi dlouho ležela v hlavě. Přivedl mě na ni kolega, který na jednom firemním setkání Javistů někdy před rokem nadnesl otázku „Co se stane, když injektnu stateful session bean do servletu?“ Zajímavé co? Stejná otázka se samozřejmě nabízí i u stateless beanů.

Jak jsem potkal EJB

Rozhodl jsem se, že se už konečně pořádně naučím EJB. Ano, opravdu, já zavilý odpůrce této technologie, jsem se rozhodl, že poznám nepřítele a to pěkně podrobně. Začal jsem knihou Head First EJB vřele doporučuji všem, kteří chtějí pochopit EJB. Stejně jako ostatní knihy Head First série nás do tématu uvede hravou a zábavnou formou.

EJB 2.x - Session Beans (Home Interface)

Home rozhranie pre session beans deklaruje metódy určené na vytváranie a mazanie session objektov. Na rozdiel od entity beans nie je možné v home rozhraní deklarovať vyhľadávacie metódy, respektíve home metódy. V prípade finder metód by to ani nemalo zmysel, pretože identita session objektu je z pohľadu klienta ukrytá. Keď klient potrebuje získať...

EJB 2.x - Session Beans (Component Interface)

Rovnako ako pri entity beans, aj v prípade session beans je to, ako ju klient vidí, definované prostredníctvom jej komponentného rozhrania. Preto si pripomeňme, že každé remote rozhranie musí rozširovať triedu "EJBObject" a každé lokálne rozhranie triedu "EJBLocalObject". Už v prípade entity beans sme spomínali, že remote a lokálne rozhrania sú...

EJB 2.x - Session Beans (Stateful a Stateless)

Na rozdiel od entity beans, ktorých cieľom je manipulovať s perzistentnými dátami, úlohou session beans je vykonávať biznis logiku. Session beans si môžete predstaviť ako rozšírenie klienta. Architektúra EJB poskytuje pre session beans rovnakú podporu transakcií, zabezpečenia a manažmentu súčasného prístupu ako pre entity beans. Konzumentom session...

EJB bez EJB

Líbí se vám nový zápis EJB pomocí anotací? Potřebujete vaši EJB aplikaci nasadit i mimo aplikační server? Potřebujete nakonfigurovat funkční testy EJB? Potom je tu pro vás projekt Pitchfork.

EJB 2.x - Entity Beans (CMP - deployment entity)

Po implementácii CMP enterprise beanu obvykle nasleduje definovanie deployment deskriptora. Preto sa budeme venovať jeho tvorbe z pohľadu Container Managed Persistence. Všetky uvedené príklady budú vzorové a typické, s ktorými sa môžete pri štúdiu stretnúť najčastejšie.

EJB 2.x - Entity Beans (CMP - implementácia CCM metód)

Bez ohľadu na to, akú perzistentnú metódu si vyberiete pre danú entitu, vždy musíte implementovať rozhranie EntityBean. Z toho okrem iného vyplýva, že vždy musíte implementovať tie isté CCM metódy. Rozdiel je iba v tom, za čo ste zopovední pri implementácii ich obsahu. Jedinou výnimkou je implementácia vyhľadávacích metód, ktoré nie sú povinné pri...

EJB 2.x - Entity Beans (CMP - deklarovanie CMP entity)

V tomto článku plynulo prejdeme na druhý spôsob možnej implementácie entitných EJB objektov, ktoré predstavujú možnú alternatívu. Namiesto kódovania všetkých prístupových metód potrebných na ukladanie stavu entity budeme v tomto prípade vytvárať deklaratívne mapovania a necháme EJB kontajner, aby vytvoril potrebné JDBC volania za nás. V prípade CMP...

Seam 1.1 - nejenom EJB 3.0

Gavin King se asi chytil za nos, protože nová verze Seamu už nezávisí na EJB 3.0. V předchozích verzích šel sice Seam spustit například v Tomcatu, ale bylo nutné rozběhnout JBoss Micro Container. To s verzí 1.1 již není potřeba.

JBoss cluster krok za krokem

jboss logo
Chtěli by jste otestovat svojí webovou aplikaci v clusteru a nebo si prostě jenom takový cluster vyzkoušet. Pokud ano, můžete pokračovat čtením tohoto průvodce Jak vytvořit JBoss cluster krok za krokem. Nemělo by Vám to zabrat podle mých odhadů více jak patnáct minut.

EJB 3.0 + JSF = JBoss Seam

Seam se snaží nabídnout efektivní způsob spojení technologie EJB 3.0 a JSF, čili je přímo určen k tvorbě webových aplikací. Mezi jednu z výhod Seamu patří přímé napojení JSF komponent na session beany (action listenery) a entity beany (model) bez nutnosti psaní controleru z pohledu MVC. Funkce controlleru není nahrazena žádnou automagií, ale...

EJB 2.x - Entity Beans (BMP - deployment entity)

V tomto článku zakončíme tématiku BMP (Bean Managed Persistence), a to tým, že si ukážeme, ako nami vytvorené triedy a rozhrania nasadíme na aplikačný server. Vytvoríme si konfiguračný súbor označovaný ako deployment descriptor a ukážeme si, ako našu entitu otestovať.

JBoss zakoupen Redhatem!

eště nedávno zakladatel JBosse Marc Fleury vehementně vyvracel, že se snaží prodat JBoss kudy chodí. V době onoho rozhovoru už měl nejspíše pravdu — pár dní uteklo, a můžeme číst, že Red Hat podepisuje finální dohodu o akvizici JBosse.

EJB 2.x - Entity Beans (BMP - finder metódy a mazanie entít)

Keď klient zavolá nejakú vyhľadávaciu metódu find, kontajner následne zavolá korešpondujúcu ejbFind metódu. Najdôležitejšie je uvedomiť si, že v prípade tejto metódy ste zodpovedný iba za vrátenie hodnoty primárneho kľúča, ktorý zodpovedá zadaným kritériám vyhľadávacej metódy.

EJB 2.x - Entity Beans (BMP - spolupráca medzi entitami)

V predchádzajúcom článku sme načrtli spôsob implementácie synchronizačných metód ejbLoad a ejbStore. Ako ste si mohli všimnúť, v prvej menovanej metóde sme, čo sa týka predmetu (objektu) aukcie, nemali k dispozícii priamo tento predmet (ako objekt triedy Item), ale iba hodnotu jeho primárneho kľúča.

EJB 2.x - Entity Beans (BMP - načítanie a uloženie entitného objektu)

Okrem vykonávania rôznych biznis metód, má entitná trieda najviac práce so synchronizovaním svojho stavu s korešpondujúcimi dátami v podkladovej databáze. K tomuto účelu sú určené dve špeciálne metódy, ejbLoad a ejbStore.

EJB 2.x - Entity Beans (BMP) - vytvorenie entitnej triedy

Už viete, že ak sa rozhodnete vo vašich entitných triedach využívať princíp BMP, budete si musieť zabezpečiť obsah volania jednotlivých callback metód vo vlastnej réžii. Vieme tiež, že ak klient zavolá metódu create nachádzajúcu sa v home rozhraní entitnej triedy, kontajner zavolá korešpondujúcu metódu ejbCreate, volanú nad inštanciou požadovanej...

EJB 2.x - Entity Beans (BMP) - vytvorenie a použitie dátového zdroja

Bez ohľadu na to, či používate ORM (Object-Relational Mapping) alebo nie, mali by ste poznať aspoň základy technológie JDBC, ak chcete implementovať vaše entity beans použitím BMP (Bean-Managed Persistence). Preto tu budem predpokladať, že určité základy JDBC máte. V opačnom prípade vám odporúčam si ich naštudovať.

EJB 2.x - Entity Beans (Bean-Managed Persistence - základné fakty)

Pre každú entity bean, ktorú vytvoríte, si máte možnosť zvoliť spôsob, akým bude jej stav synchronizovaný s podkladovou databázou. V podstate máte dve možnosti. Buď si zabezpečíte potrebný kód na prácu s databázou sami (respektíve využijete služby niektorého frameworku), alebo vytvoríte potrebné mapovanie stavových polí EB na databázové polia a...

EJB 2.x - Entity Beans (callback metódy a životný cyklus)

EJB kontajner spravuje životný cyklus entitných objektov prostredníctvom množiny callback metód vykonávaných nad príslušnými inštanciami. Tieto metódy sú jednak z tých definovaných v rozhraní EntityBean, jednak sú to metódy potrebné na zabezpečenie funkcionality definovanej v home rozhraní. Vy ste zodpovední za implementáciu týchto metód, takže je...

EJB 2.x - Entity Beans (implementácia rozhraní a biznis metód)

Cieľom predošlých článkov bolo vysvetliť, ako zadeklarovať rozhrania pre entity beans, ktoré sú vystavené voči klientom. Nezaoberali sme sa však zatiaľ implementačnými detailmi. Treba však povedať, že v ďalších článkoch budeme musieť rozlišovať medzi BMP a CMP perzistentným mechanizmom. Na druhej strane sú však určité oblasti, ktoré sú spoločné...

EJB 2.x - Entity Beans (deklarácia home rozhrania)

Každá entity alebo session bean musí mať home rozhranie, ktoré môže byť odvodené z javax.ejb.EJBHome, respektíve z javax.ejb.EJBLocalHome rozhrania. Home rozhranie poskytuje metódy, ktoré umožňujú klientom vytvárať, hľadať a odstraňovať EJB inštancie. V prípade entity beans umožňuje toto rozhranie aj získavať referencie na existujúce entitné...

EJB 2.x - Entity Beans (definícia triedy primárneho kľúča)

Každý entitný objekt musí mať asociovaný objekt primárneho kľúča, alebo jednoducho primárny kľúč. Táto požiadavka vyplýva z toho, že entitné objekty v drvivej väčšine prípadov korešpondujú s riadkami v obvykle previazaných tabuľkách relačnej databázy. Dokonca aj keď by ste použili entitný objekt na reprezentáciu iného typu dát, stále budete musieť...

Oracle a EJB 3

Dlouho to vypadalo, že jakkoli je EJB 3 všestranně vítaným a zjevně nutným zjednodušením původní podoby EJB specifikace, přesto jedinou implementací na obzoru je ta od JBosse.

EJB 2.x - Entity Beans (deklarácia component rozhraní II)

V predchádzajúcom článku sme začali vytvárať rozhrania pre entity beans, ktoré budeme potrebovať pre náš príklad elektronickej aukcie. V tomto článku budeme pokračovať, pričom si vytvoríme a popíšeme ďalšie component rozhrania a niekoľko pomocných tried. Tento článok bude teda prevažne naplnený zdrojovým kódom.

EJB 2.x - Entity Beans (deklarácia component rozhraní I)

V predchádzajúcom článku sme si vysvetlili, že klient pristupuje k entity alebo session beans prostredníctvom ich component rozhraní. Toto rozhranie pozostáva buď z lokálneho rozhrania, remote rozhrania alebo oboch rozhraní súčasne. Keďže klient nemôže pristupovať k EJB priamo, všetky služby, ktoré majú byť pre klientov dostupné, musia byť...

EJB 2.x - Entity Beans (základné informácie)

Entity Bean (ďalej aj ako EB) reprezentuje perzistentný objekt, ktorý obvykle korešponduje s jedným alebo viacerými (v prípade previazaných tabuliek) riadkami relačnej databázovej tabuľky. Vlastnosť dlhodobej perzistencie je črta, ktorá najviac odlišuje EB od ostatných dvoch typov, pretože napríklad Session Bean dokážu tiež uchovávať stav, ale na...

EJB 2.x - vytváranie, aktivácia, pasivácia a mazanie EJB objektov (základné princípy)

Vytváranie inštancií enterprise beanov je podstatne odlišné od vytvárania klasických inštancií Java objektov v rámci jednej JVM. V skutočnosti nemusí ani prísť k vytvoreniu novej inštancie beanu, ale EJB kontajner môže využiť už existujúce zdroje z takzvaného bean poolu, čo je niečo ako zásobník EJB objektov.

EJB 2.x - filozofia prístupu k EJB cez component a home rozhrania

V minulej časti seriálu sme si vysvetlili, že pri snahe o prístup k EJB, musí klient vždy použiť príslušné rozhranie danej EJB komponenty. Ktorý typ rozhrania bude použitý záleží na tom, či ide o lokálneho alebo vzdialeného klienta.

EJB 2.x - Java RMI a komunikácia s EJB

Jeden z kľúčových aspektov EJB architektúry je distribuovanosť. Pod týmto výrazom sa rozumie, že nie všetky objekty musia bežať v rámci tej istej inštancie JVM (Java Virtual Machine). Otázka teda je, ako môžeme z objektu A, existujúceho v rámci jednej JVM, volať metódy objektu B, nachádzajúceho sa v úplne inej JVM? Odpoveďou z pohľadu EJB je...

EJB 2.x - role a ich zodpovednosti pri vývoji EJB

Ako som už spomenul v úvodnom článku, Enterprise JavaBeans je chápaná ako komponentovo orientovaná architektúra pre distribuovaný computing. Samotné Enterprise Beans (EB) sú jednoznačne najdôležitejšou súčasťou tejto architektúry. Sú určitým spojivom medzi ostatnými prvkami komplexného celku. Napriek tomu, že ostatné komponenty architektúry...

EJB 3.0, Interceptory a Spring

Mě osobně přijdou Interceptory jako příjemné sblížení s AOP. Na druhou si neodpustím malé rýpnutí, tohle máme zavedené a používáme v aplikačním frameworku Spring díky AOP již dávno. Je libo malou ukázku?

EJB 2.x - analýza problémovej domény II

V tomto článku si okrem iného zadefinujeme objektový model pre našu aplikáciu. Tento model však nemusí byť definitívny, ale postupne, ako sa naše vedomosti budú rozširovať, rozšírime si aj objektový model. V reálnom svete je cesta od use case diagramov k objektovému modelu pomerne bolestivá a málokedy jednoduchá. Avšak v záujme jednoduchosti...

Vyšel druhý Early Draft EJB 3.0

Nová specifikace EJB se přibližuje.

EJB 2.x - analýza problémovej domény I

V prípade EJB nie je vôbec jednoduché ilustrovať jednotlivé koncepty technológie na jednoduchých príkladoch, obsiahnutých v samostatných článkoch. Preto som sa rozhodol navrhnúť určitý centrálny príklad a budovať ho počas celej série. V situáciách, kde to bude užitočné, použijeme aj iné príklady na ilustráciu vysvetľovaných vlastností. Dúfam, že...

EJB 2.x - úvod do J2EE technológie

Architektúra EJB 2.x, ktorá je súčasťou Java 2 Enterprise Edition (J2EE), sa stala akceptovaným štandardom pre budovanie distribuovaných, mission-critical aplikácií. Špecifikácia EJB robí z J2EE aplikačného servera solídny základ pre budovanie aplikácií, od ktorých sa očakáva, že budú bezpečné, škálovateľné a portabilné. A práve o tejto...

 
strana 1/1celkem 52 položek