JAK PSÁT VELKOU APLIKACI V REACTU – ČÁST 1.

Rádi v MoroSystems zkoušíme nové technologie, a pokud jejich použití dává smysl, zavádíme je okamžitě do praxe. Nedávno jsme udělali menší revoluci a přešli z jQuery, se kterým máme rozsáhlé dlouholeté zkušenosti, na React, konkrétně ES6, Less, Redux, Webpack a npm. Proč jsme zvolili tyto technologie a jak jsme se s nimi vypořádali si můžete...

Payara aneb zmrtvýchvstání aplikačního serveru Glassfish

Payara - logo
Stručná historie aplikačního serveru Glassfish, pokusů Oracle o jeho "utlumení" a o návratu na špičku jako aplikační server Payara (což je trochu agresivnější rybka než ta ve sklenici), ke kterému jsem měl tu čest jako "přispěvatel" a dlouholetý uživatel trochu pomoct. Vývoj pokračuje a nabírá na obrátkách, neb komunita kolem Payary se postupně...

Mock Web Service v Soap UI a Groovy

Dejme tomu, že se vaše platforma skládá z několika komponent komunikujících přes webové služby, ale některá z nich není ještě vyvinutá nebo je třeba kvůli omezení sítě nedostupná. Vy byste přesto potřebovali zkoušet integrovat. Co teď? Vytvořte si mock v Soap UI a případě potřeby naskriptujte v Groovy. 

Spring Certifikace

Sepsal jsem pár poznámek ze školení, které jsem absolvoval, i Spring certifikace, kterou jsem právě složil.

SOAP Stateful Web Service - Java/C#

SOAP Stateful Web Service, server v Java, klient v Java nebo C# a proč je důležitý contract first přístup.

JPA - Vazební tabulky s metadaty

V rámci přípravy na JPA certifikaci jsem narazil na pár zajímavostí. Tentokrát chci psát o vazebních tabulkách legacy databází, které nejsou triviální, tj. neobsahují jen klíče ale i nějaká metadata.

Spring a podpora pre Multipart HTTP upload

Ako rýchlo rozbehať multipart upload súborov cez HTTP? Ak máte k dispozícii servlety 3.x, môžete ich nakonfigurovať veľmi jednoducho.

Jetty – konfigurace HTTPS

Jetty je oblíbený webový kontejner, který používáme na mnoha projektech především jako vývojový nebo testovací nástroj. Jetty jde jednoduše integrovat do projektu pomocí maven pluginu, dá se snadno startovat, embeddovat, atd. Když už ale potřebujete připravit reálnější testovací prostředí nebo dokonce produkční, je konfigurace HTTPS...

Žurnálování Hibernate entit pomocí DB triggerů

V dřívějším příspěvku DB žurnál pomocí Hibernate interceptorů jsem nastínil možnost žurnálování pomocí hibernate interceptorů. Další a asi nejjednodušší možností je použití Hibernate envers, které jsou od hibernate verze 3.5 jeho součástí, které ve své implementaci využívají interceptory a lze je kombinovat dohromady (tzn. pomocí interceptorů řešit...

Deset let, které neotřásly Spring frameworkem


Příklad na Spring Boot, REST architekturu a Spring Cache

Na posledním školení jsme vytvořili aplikaci, která je ukázkou technologií Spring Boot, Spring Data JPA, REST web. služeb (XML a JSON) a Spring Cache. Jestlí Vás zajímají tyto technologie, pak to pro Vás bude určitě užitečný příklad. Demo aplikace je online (na Heroku) a zdrojové kódy jsou k dispozici volně na GitHubu.

Zabezpečení Manager aplikace u Tomcatu

Čirou náhodou jsem webu narazil na zmínku o worm Java.Tomdep, který byl objeven koncem minulého roku a napadá Tomcaty, které mají nainstalovanou Manager aplikaci a jednoduchá uživatelská jména a hesla. To mě donutilo sepsat best practice zabezpečení (nejenom) Manager aplikace.

Jak vytvořit u Spring Boot web. aplikace WAR soubor?

Ve výchozím nastavení používá Spring Boot web. aplikace embedded Tomcat. To je super u hello world příkladů, extra jednoduchých aplikací, nebo pokud používáte Cloud Foundry. Obyčejně ale chcete vytvořit klasickou webovou aplikaci, kterou poté můžete nasadit na jakýkoli Java EE server. Jak na to?

Spring Web MVC aplikace kompletně bez XML

Pokud ve Vaší Spring Web MVC webové aplikaci nechcete používat vůbec žádný XML konfigurační soubor (web.xml, Spring konfigurace apod.), pak čtěte dál :-)

Hotswap s DCEVM a JSF

Programuji v Javě a dělám tak v Eclipse. Mojí denní, milionkrát opakovanou rutinou bylo upravit kód, následně pak  nastartovat aplikaci, potom se browserem zalogovat, dále se pak proklikat do oblíbeného místa v UI a konečně krokování v debugeru. Jak aplikace rostla ...

Oracle Java Developer Workshop - zápisky

Ve středu 27. listopadu jsme navštívili workshop pořádaný firmou Oracle. Tématem byly novinky ve světě platformy Java.Na akci vystoupili lidé z pražské pobočky firmy Oracle. Co nás tedy čeká nového v oblasti Java 8, Java EE 7 nebo Primeface

View vrstva s Thymeleaf – náhrada za JSP

Dnes bych vám chtěl představit Thymeleaf template engine pro XML, XHTML a HTML5. Jedná se plnohodnotnou náhradu JSP, který umožňuje vytvářet tzv. natural templates pomocí dialektů. 

Testování Spring MVC controllerů

Až dosud byly v zásadě dvě možnosti, jak automatizovaně testovat webovou vrstvu aplikace postavené na Springu: Selenium testy nebo klasické unit testy. Obojí má svoje nevýhody. Od verze Spring Frameworku 3.2 lze testovat Spring MVC controllery novým způsobem a myslím, že stojí za to.

Nakopnite MVC webaplikáciu Spring Boot-om

Spring Boot je čerstvý framework pre naštartovanie webových aplikácií založených na Spring MVC. V kombinácii s Groovy sa webaplikácie prototypujú jedna radosť.

Jak lépe na abstract entity v JPA

Absolvoval jsem svůj doposud nejlepší technický pohovor (ne, v Google přijímací pohovor rozhodně lepší nebyl). Nikdo nedělal ramena s asymptotickou složitostí apod. Ba právě naopak to bylo velmi inspirující. Kromě toho, že jsem pochytil takové drobnosti jako unixový příkaz tree, jsem se hlavně přiučil, jak psát lépe abstract entity v JPA. SoftWare...

Ako rozbehať Spring HTTP Invoker na vzdialené volanie procedúr?

Ako rozbehať Spring HTTP Invoker na vzdialené volanie procedúr? Ukážka kompletného projektu a jeho architektúry vrátane dvoch možností realizácie servera: ako modulu v servletovom kontajneri alebo jednoduchšieho servera pre Oracle JDK6.

Spring profiles a použití v testech

Po 3 letech dělám větší refaktoring na našem direct mailingovém modulu a jako první jsem se rozhodl povýšit verze knihoven a zrefaktorovat JUnit testy, které jsou tam ještě psané ve stylu JDK 1.4.V souvislosti s tím jsem samozřejmě přepracoval formu testů z dědičné hierarchie na anotace, které byly představeny poprvé veSpring 3.X (pokud se...

Neblokující volání SOAP webových služeb

Představte si situaci, kdy musí vaše webová aplikace při obsluze požadavků od klientů volat nějakou webovou službu. Pokud se z toho nemůžete vyvléct cachováním nebo jiným úhybným manévrem, tak se mnou jistě budete souhlasit, že je to vyhlídka neradostná.

JSF, Spring Security, Ajax Session Expired

V úvodu do PrimeFaces a JSF 2 jsem se zmínil, že používáte-li Spring Security, nepotřebujete managed beanu pro login, stačí jen submit javascriptem (POST request na url /j_spring_security_check). Mnohem zapeklitější je ošetření ajaxu nad vypršenou HTTP session. Nejspíš si říkáte, žádná věda. Spring Security mě prostě přesměruje na login. Taky že...

K čemu je nám užitečný komponentový web framework?

Nedávno jsem jedním svým twítem vyvolal menší diskusi ohledně toho, co nám dovoluje komponentový framework oproti tomu, čeho bychom byli schopni dosáhnout s jednoduchým MVC rámcem. Bohužel twitter mi nedává takovou možnost vyjádřit se a tak jsem chtěl důvody a výhody, které vidím v komponentách na frontendu, popsat trošku obšírněji v tomto...

Postřehy z online kurzu MongoDB

Zapojil jsem se do online kurzu MongoDB, který pořádají přímo jeho autoři z 10gen. Aktuálně je kurz ve svém třetím týdnu (ze sedmi) takže už k němu mám pár postřehů.

Spring, JSP a IndexOutOfBoundsException

Po nějaké době praxe řešíte většinu problému rutinně, metodou kouknu a vidím. Občas je to ovšem zásek, se kterým na první pohled netušíte, jak pohnout. Tohle je jeden z takových. Měli jsme JSP formulář, který fungoval rok bez chyby. Renderoval se v pořádku, ale binding začal házet IndexOutOfBoundsException. Ale přitom na modelu byl field...

Spring, REST a e-mail jako parametr

Denně jako vývojáři řešíme jeden problém za druhým. O většině si nejspíš myslíte, že nestojí za samostatný článek na blog (což není pravda). Mezi takové, které jsem odsunul do pozadí, by patřil i tento, pokud by se ovšem na to samém nepozastavil i kolega. Jde o to, že když používáte Spring spolu s RESTovým url a chcete používat e-mail jako...

Odstranění metadat z MDS

HOWTO jak v Oracle SOA Suite mazat soubory a adresáře z MDS (MetaData Store) pomocí WLST (WebLogic Scripting Tool).

Websocket API

Vzpomínáte na obnovující se skryté iframe, pro načítání dat na pozadí? Takto jsme řešili pseudo asynchroní komunikaci klienta se serverem než přišel Ajax. Ale i ten má svá omezení. Ta hlavní je, že není možné kontaktovat klienta přímo, ale musíme čekat na to, až se klient sám na data dotáže. Právě tento problém řeší websocketts.

Máte jistotu, že do session ukládáte pouze serializovatelné objekty?

Jestli ano, tak by mne velmi zajímalo, jak to děláte. My jsme totiž ještě donedávna žádnou jistotu neměli - vše záleželo na poctivosti a důslednosti programátorů. Jenže v Javě není tahle záležitost vůbec jednoduchá a tak vám může díky nějaké referenci hluboko ve stromu objektů uniknout, že to, co ukládáte do session, má vazbu na objekt, který...

Ošklivý memory leak v Apache Commons File Upload

 Používáte Commons File upload knihovnu ve vaší aplikaci? Používáte DiskFileItemFactory pro ukládání velkých souborů do dočasné složky na disku? Používáte FileCleaningTracker, abyste se zbavili nepoužívaných dočasných souborů, jak je doporučeno v dokumentaci?Pokud ano, máte v aplikaci memory leak, o kterém pravděpodobně nemáte ani tušení. 

Zatrolený CAP

S tím jak se šíří cloudové šílenství, čím dál tím víc lidí naráží do CAP teorému. Mě i mé kolegy nevyjímaje. Tak jsem si řekl, že si to tu vyjasním.CAP teorém zjednodušeně říká, že distribuovaný systém, nemůže splňovat všechny tři následující vlastnosti:Consistency - konzistence - všichni klienti vidí stejná dataAvailability - dostupnost - každý...

JBoss Technologie 1: OpenShift, AS7, Forge, RESTEasy

Rád bych vám představili nový občasník s volným pokračováním, který bude představovat nejrůznější JBoss technologie v praxi. Každý díl tohoto občasníku si vymezí určitý cíl, který pokryje několik Java a JBoss technologií, a ukáže jak tohoto cíle dosáhnout. Začneme tím, že napíšeme (přesněji vygenerujeme) JEE aplikaci, která poskytne...

Nedrátujte konfiguráky do warka

Programátoři bezpochyby trpí syndromem: „Kód, který napsal někdo jiný, stojí za starou belu.“ Nejlepší na učení je sice přečíst tuny lepšího kódu, jenže jako konzultant se spíše utvrzuji v tom, že jedinou metrikou kvality kódu je WTF za minutu. SQL dotazy v JSP? To nic není, co teprv SQL Injection na druhou – klientský JavaScript vykonávající...

Skryté pastičky v Tomcatu aneb zpětná kompatibilita se všude nenosí

Tomcat logo
Nespoléhejte se na to, že, tak jako Java samotná, budou i základní knihovny a nástroje respektovat důležitost zpětné kompatibility. Například v případě Tomcatu se nám už několikrát stalo, že při upgradu na verzi, kde se mění pouze číslo patche, se kompletně rozpadla funkčnost aplikace. Poprvé to bylo myslím, když v patchi vyupgradovali na novější...

Unit testy a jazyk PL/SQL

Možná jste se již také na vašem projektu setkali s nutností vytvořit unit testy pro části kódu, které při načítání dat z databáze využívají uložené procedury nebo funkce. Toto na první pohled jednoduché zadání s sebou může ovšem nést jeden problém, a tím je použití java embedded databáze pro testování. Obecně mají embedded databáze slabou nebo...

DB žurnál pomocí Hibernate interceptoru

Na mnoha projektech je třeba řešit databázový žurnál aplikace, který zaznamenává události v systému včetně dat, která při těchto událostech byla změněna či jen čtena. Zákazníci často požadují u událostí, které mění data, žurnálovat jak staré tak i nové hodnoty záznamu.Implementace takového mechanismu přímo na DAO vrstvě by byla pracná a hlavně...

Od Sysdeo v Eclipse k tc Serveru v STS

Při vývoji webových aplikací používáme Eclipse IDE. Z workspace dostáváme Maven závislosti na Tomcat pomocí pluginu Sysdeo. Toto řešení funguje, ale není ideální. Nastavení aplikace lze ovšem jednoduše upravit tak, aby šla spouštět na tc Serveru přímo z STS (SpringSource Tool Suite).

Modulární datový model v Hibernate

Požadavek na modularizaci aplikace je přirozený a logický – zdánlivě nejde o nic víc než rozdělit aplikaci na více částí, které spolu příliš nesouvisí. Bohužel v praxi se něco takového realizuje, 0808alespoň v prostředí Javy, docela obtížně. Musíme aplikaci dobře navrhnout a musíme používat netriviální technologie či postupy. Nejspíš narazíme již v...

Co nefunguje v GWT

GWT je technogie, která mi velmi líbí – podařilo se jí dostat téměř bezproblémově Javu do prostředí internetového prohlížeče. Nicméně GWT má některá omezení, která si programátor předem neuvědomí a někdy je těžké odhadnout, v čem je problém. Ukážu tři kódy, na kterých se tyto limity projeví.

Ajax v Apache Wicketu

Pro Javu existuje velké množství webových frameworků. Můžeme mít různá kritéria pro výběr toho nejlepšího frameworku pro náš projekt, ale podle mého názoru je jedním z hodně důležitých kritérií rozumná integrace JavaScriptu a Ajaxu. Pojďme se podívat, jaká je situace v oblíbeném frameworku Apache Wicket.

Dependency Injection je cesta, nikoliv cíl

Když jsem asi před šesti lety objevil dependency injection (dále v textu DI) jako způsob pro odstranění těsných vazeb mezi objekty, připadalo mi to jako Svatý grál programování. Díky masivnímu rozšíření Spring frameworku a zanesení DI do všech dalších frameworků a standardů, které přišly po něm se DI stalo běžnou součástí dnešního programování....

Pár postřehů z GeeCONu 2011

Před pár dny jsme se s kolegy z JetMinds vrátili z příjemného výletu do polského Krakowa, kde se konala javistická konference GeeCON 2011. Z Ostravy jsou to do Krakowa dvě hodinky jízdy autem, takže takovou akci nešlo ignorovat. Vrátili jsme se informačně bohatší a já se pokusím něco málo z toho bohatství převést do psané formy...

Testování REST API

Servlet container je mocné API, které kdysi pomohlo popularitě Javy mezi vývojáři. Je to ale také API staré, které samo o sobě nemá podporu pro psaní jednotkových testů. Můžeme sice pouštět testy tak, že spustíme celý servlet kontainer, ale pro mnoho případů je to zbytečné. Existuje i jednodušší řešení, pojďme se na něj podívat.

Trápení s MySql JDBC driverem

MySQL logo
MySql databázi používáme jako standardní řešení datové vrstvy už hodně let. Prošli jsme si už pěknou řádku verzí JDBC ovladačů, ale jedna věc mě dostala vážně do kolen. Tak se pohodlně usaďte, protože dnešní příběh bude vážně dlouhý Žil byl v jedné firmě programátor starající se malou generickou knihovnu pracující s JDBC. Jednoho krásného rána se...

NetBeans a Google App Engine: jak uchránit datastore před buildem

Google App Engine se stal poslem dobrých zpráv pro všechny javisty, kteří už přestali doufat v rozumný Java hosting za rozumnou cenu. Má sice své "ale", ale suma sumárum je to hodně schopná platforma, která leckterý projekt solidně uhostuje. Pro NetBeans existuje neoficiální plugin, který má jednu malou mušku a to sice že s cleanem vezme i veškerá...

Proč jsem nepoužil Spring Batch?

Když jsem si srovnal zadání na mém posledním projektu, tak vše na první pohled nasvědčovalo tomu, že bude vhodné použít Spring Batch, další projekt z rodiny Springů. Za to jsem byl moc rád, protože jsem již delší dobu hledal příležitost, abych tento zajímavý projekt vyzkoušel.  Na začátku jsem Spring Batch znal jen z několika článků, a proto, když...

Znáte Spring Data (JPA)?

Již jsem o tom psal na Twitteru, ale myslím, že si to zaslouží trochu větší a delší pozornost, tak to píši ještě sem. Pod hlavičkou firmy SpringSource se v poslední době objevilo spoustu nových projektů a jedním z nich je i projekt Spring Data.

Testování pomocí Jetty

Při psaní jednotkových testů webové aplikace je někdy potřeba spustit celý kontext servlet kontaineru v prostředí http serveru. Pojďme se podívat, jak to.

Test metody tvořící objekty

Kdo píše unit testy (a to je snad už většina), se s touhle situací určitě setkal. Máte metodu vytvářející ve svém těle nějaký objekt a posíljící ho na nějaký interface nebo do další vrstvy aplikace. Typicky servisní metoda vytvoří doménový objekt a pošle ho do DAO vrstvy. Jak ale napsat elegantně unit test, když DAO vrstvu mockujete?

První potkání s Grails

Grails logo
Tak jsem se po dlouhém odkládání konečně dostal k tomu vyzkoušet si Grails. Na tento framework jsem četl poměrně hodně chvalozpěvů, jak moc je to jednoduché v něm něco udělat, a tak jsem si říkal, že by to snad ani nemuselo být nijak složité.Stáhl jsem si Grailsy a protože vím, že IntelliJ IDEA má pro Grailsy podporu, zkusil jsem bez jakékoli...

Trapenie s Hibernate proxy (Trapenie s Hibernate proxy)

Kratke vysvetlenie vzniku hibernate proxy a popis toho ake problemy moze sposobit ak je pouzity lazy loading v pripade hierarchickych objektov.

Jak pořád nepsat labely

Formulářová pole, validační hlášky, hlavičky seznamů, historie změn entity, … je mnoho míst, kde je potřeba pracovat s popisy polí, která odpovídají vlastnostem nějaké třídy. Tento blog představí tip, jak si rutinní činnost zjednodušit.

Jak vytvořit java web aplikaci s podporou Spring a JPA

Nedávno se kolega ptal na to jak vytvořit a nakonfigurovat jednoduchou aplikaci využívající Spring IoC a JPA. Aplikace má sloužit jako platforma pro jednoduché testování a jedinou úlohou bylo ukládání a čtení několika málo entit. Potřeboval přidávat nové třídy do business logiky, psát testy a výstup na web. Namísto obvyklého RTFM jsem se rozhodl...

Jak vytvořit java web aplikaci s podporou Spring a JPA

Nedávno se kolega ptal na to jak vytvořit a nakonfigurovat jednoduchou aplikaci využívající Spring IoC a JPA. Aplikace má sloužit jako platforma pro jednoduché testování a jedinou úlohou bylo ukládání a čtení několika málo entit. Potřeboval přidávat nové třídy do business logiky, psát testy a výstup na web. Namísto obvyklého RTFM jsem se...

Zrychlete svoji webovou aplikaci pomocí Partial update

Partial update
Partial update neboli částečná aktualizace stránky (pomocí AJAXu) není technika zrovna nová. Po pravdě řečeno však stále není běžná, přestože její správné použití může velmi pozitivní dopady na celkový výkon systému a také je velmi dobře přijímána uživateli. Na otázku proč, můžeme odpovědět problematickou podporou ve frameworcích – některé se na...

Java na webovém serveru: implementujeme Jabber

Dnes si povíme, jak vytvořit pro naši aplikaci webový chat. A nebude to chat ledajaký, použijeme oblíbený protokol XMPP (Jabber) a napojíme se na existující server. Díky tomu si spolu budou moci povídat jak náhodní kolemjdoucí, kteří přišli na web, tak i uživatelé klasických IM klientů.

Java na webovém serveru: AJAX formuláře

Od minulého dílu umožňuje naše aplikace vkládat komentáře, ovšem ne příliš pohodlným způsobem. Dnes si proto ukážeme, jak uživatelům komentování zpříjemnit pomocí oblíbeného AJAXu. Využijeme k tomu knihovnu jQuery na straně klienta a servlety na straně serveru.

Java na webovém serveru: Komentáře a integrace s Texy

Možnost vkládat komentáře, resp. schopnost přijímat od uživatelů formátovaný text, to je vlastnost, bez které se neobejde skoro žádný web. V dnešním díle přidáme do naší aplikace podporu komentářů a ukážeme si, jak je kontrolovat, aby nám do nich potenciální útočník nemohl podstrčit žádná závadná data, která by narušila naši stránku. Kromě...

Mračna, sluníčko a nebo smrádek a teploučko nad Javou

Honza Novotný a Lukáš Křečan se vypravili na letošní GeeCON a zprostředkovali nám své postřehy z tamního dění GeeCON - cast prvni, GeeCON 2010 - den první a GeeCON 2010 - Den druhý. Jestli mě něco z těch zpráv zarazilo, pak to byla neutuchající víra ve světlé zítřky Javy. Musím se tedy přiznat, že po přečtení rozhovoru s A Discussion with Josh...

Jak jsem si užil Service Oriented Architecture v praxi

Poslední půlrok jsem strávil na zajímavých projektech v jedné z největších bank tady v Česku. Musím říci, že největším zjištěním pro mě bylo něco co bych nazval SOA v praxi. Musím se upřimně přiznat, že před tím, než jsem poznal praxi, přišla mi SOA jako věc příliš abstraktní, pod kterou jsem si nedokázal představit nic konkrétního....

Java na webovém serveru: hlasování a grafy v SVG

Jak jsme si minule slíbili, dnes zase pokročíme trochu s funkcionalitou naší aplikace. Dnešním cílem bude umožnit uživatelům hlasovat, zda se v jejich oblíbeném podniku má kouřit nebo ne. Zavedeme jednoduchou ochranu proti podvodnému hlasování. Výsledky vykreslíme pomocí pěkného SVG grafu. Využijeme přitom to, co jsme se naučili v minulých...

Key/Value databáze

Na jednom z projektů jsem použil pro ukládání dat key/value databázi a rád bych se podělil o několik postřehů, které jsem získal. V mém případě jsem jako key/value databázi zvolil Voldemort a to z toho důvodu, že je kompletně napsaná v Jave. Původně vzniknul Voldemort jako interní projekt používaný službou LinkedIn, který byl posléze uvolněn jako...

Přihlašování a generování Spring Security Remember-me cookie pomocí DWR a jQuery

Tento článek bude popisovat ajaxovou alternativu ke klasickému přihlašování odesláním požadavku na adresu „/j_spring_security_check“ pomocí Spring Security. Použiji k tomu ve Springu velmi oblíbenou knihovnu DWR a javascriptový framework jQuery. Integraci Springu, DWR a jQuery zde nebudu popisovat, protože o tom je již na našem...

Java na webovém serveru: píšeme REST API

V dnešním díle našeho seriálu se budeme věnovat tvorbě REST API. Jelikož o tomto přístupu jste si zde na Zdrojáku mohli přečíst už dříve, teorii si zopakujeme jen velmi stručně a budeme se věnovat hlavně praktické stránce implementace REST rozhraní v Javě, konkrétně pomocí nástroje Jersey.

Plošné vypnutí povinného @Autowired

Při testování naší agendiové aplikace jsem se již několikrát dostal do stavu, že složitost a propletenost celé aplikace mi neumožňovala napsat rozumně testy. Zejména jsem měl problém vůbec vše potřebné nakonfigurovat, aby se všechny závislosti správně nastavily.Po nějakém čase mě napadlo, že by možná bylo vhodné pro účely testování vypnout...

Java na webovém serveru: posílání e-mailů a CAPTCHA

Dnes se opět budeme věnovat praktickým ukázkám a naší aplikaci. Po předchozím díle o vlastních JSP značkách a servletech se dnes podíváme na to, jak z Javy na serveru posílat e-maily a jak chránit aplikaci proti spamu pomocí tzv. CAPTCHA.

Zpátky ke kořenům: JSP

Nejen díky frameworku Stripes nejsou JSP mrtvou technologií. Stále se na této technologii pracuje a je vylepšována. Je naopak použitelnější než kdy dříve.

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í.

Java na webovém serveru: Vlastní JSP značky a servlety

Po minulém teoretičtějším dílu seriálu budeme dnes zase trochu programovat. Naučíme se, jak vytvářet vlastní JSP značky a funkce, které nám ušetří psaní a pomáhají vytvářet znovupoužitelný kód. A ukážeme si, jak vytvořit jednoduchý servlet, který klientům zpřístupní fotky z externího adresáře.

Java na webovém serveru: porovnání Javy a PHP

Dnes na chvíli vybočíme z praktické linie tohoto seriálu a budeme se místo další práce na naší aplikaci věnovat obecnějšímu srovnání Javy na webu s jiným používaným jazykem, a to konkrétně PHP. Podíváme se na oba jak z hlediska jazyka, tak i z pohledu nasazení na server a dostupnosti hostingu.

Vyšel Ujorm verze 0.93

Byla uvolněna nová verze open-source ORM frameworku Ujorm 0.93 navrženého zejména pro rychlý vývoj Java aplikací nad relační databází. Framework nabízí typovou kontrolu při sestavování databázového dotazu a odhalí tak většinu překlepů ještě před spuštěním aplikace. S výhodou lze využívat code-completion vašeho IDE....

iBatis 3 workshop

Jelikož máme na našich projektech bohaté zkušenosti s iBatis frameworkem verze 2, rozhodli jsme se navštívit workshop o jeho třetí verzi, který organizoval CZJUG a přednášel Jan Novotný (otec Fura, FG Forrest)....

SpringSource portfolio

spring logo
SpringSource je v současnosti jedním z největších dodavatelů webových technologií a dá se očekávat, že se tento fakt do budoucna nezmění. Ačkoliv se tato firma v podstatě zrodila z nápadu jednoho člověka (Rob Johnson) a jedné technologie (Spring) její působnost se doslova ze dne na den rozrostla na mnoho dalších souvisejících technologií....

Generovaný kód je zlo. A to i ve webových službách.

Minulý týden jsem zase trochu programoval, psal jsem jednu webovou službu. Ta měla WSDL definované třetí stranou, takže to byla poměrně jednoduchá a rutinní záležitost. Vzal jsem XML schema, z něj vygeneroval XmlBeans a začal jsem implementovat. Narazil jsem ale na jeden problém, který se mi nedařilo vyřešit...

JBoss cluster v praxi - třetí setkání JBug ČR

Na třetím setkání skupiny JBug se účastníci pokusí přímo na místě vytvořit velký cluster JBoss AS. Setkání se uskuteční v úterý 23.2.2010 od 9:00 v prostorách společnosti Servodata, Dolnoměcholupská 12, Praha 10. Registrace: www.jboss.cz/jbug

Integrace Spring, DWR a jQuery

Oblíbená trojkombinace technologií v podobě aplikačního rámce Spring, DWR a jQuery nám umožňuje Javascriptem volat metody servisních tříd spravovaných Springem. To je poměrně efektivnější přístup než příprava podobných řešení přímo v duchu MVC. Ve Springu 3.0. je však nově implementována zjednodušená podpora pro Ajax v podobě mvc-ajax modulu,...

Spring 3.0, JEE 6 a anotácie pre automatické prepájanie komponentov

Spring 3.0 prináša podporu pre anotácie z JSR-330, ktoré sa nedávno stali štandardom pre injektovanie závislostí. Popri tom však existuje ďalší štandard JSR-299. Aký je vzťah medzi všetkými anotačnými možnosťami? Aké možnosti ponúka Spring?

Spring: podmíněná konfigurace

spring logo
Při vývoji aplikací ve Springu jste jistě narazili na problém nasazení do různých prostředí. Pravděpodobně jste to řešili vytvořením samostatných buildů. Ovšem ne vždy je to potřeba. Proč nenechat konfiguraci na adminovi? Existuje jednoduché a elegantní řešení jménem BeanReferenceFactoryBean.

Testování webových služeb

Aplikace řadu funkcí a dat publikuje přes webové služby. Je to rozhraní naší aplikace, na které se většinou pojí aplikace třetích stran, a proto je žádoucí mít aspoň nějakou jistotu, že nám rozhraní přes webové služby funguje. Webové služby jsou generovány dynamicky pomocí Apache CXF (pozn.: s tímto přístupem se neztotožňuji) a není výjimkou,...

Commons DBCP industriální standard s chybami

Apache Commons
V rámci zátěžových testů, které jsem v minulém týdnu prováděl, jsem přišel na jednu zajímavou věc. Při velké zátěži došlo k “zaseknutí” Tomcatu, ze kterého se systém již nedokázal zotavit. Průvodním jevem byly otevřené konekce na databázi, přes které neprocházely žádné dotazy (tj. databáze nic nedělala), nulové zatížení...

Play! – framework pro urychlení vývoje

Další ze série článků o zajímavých, ale možná méně známých technologiích navazuje pojednáním o frameworku Play. Pojďme se tedy podívat, co nám tento nástroj, který nedávno dospěl do verze 1.0, nabízí. Představení Play – framework, který se velmi podobá principům Grails, ale jde svou vlastní cestou co největší jednoduchosti a usnadnění...

JBoss versus Spring

Druhé setkání skupiny JBoss User Group, které se bude konat 26.11.2009 od 9 hodin, bude řešit otázku "JBoss nebo Spring?" A nebo si tyto dvě platformy ve skutečnosti nekonkurují? Přijďte si vyměnit názory a zkušenosti s ostatními.

Do pranice: Vhodnost ORM

Dvakrát se mi v poslední době stalo, že jsem se snažil někoho přesvědčit o nevhodnosti použití Hibernate a obecně ORM nástrojů pro přístup do databáze. ORM přístup má svoje výhody, ale i věci, které činí jeho použití obtížné.

Apache Wicket - verze 1.4

Apache Wicket zdárně dospěl do verze 1.4, která sebou přináší změny zejména na úrovni podpory generických typů. Tato verze je tedy určena pro javu 1.5 či vyšší. Po zdravé úvaze jsem se rozhodl přejít na tuto verzi a provést úpravy na stávajícím projektu, který byl psán pro verzi 1.3.x....

Chudokrevný model, chudý příbuzný objektově orientovaného návrhu?

Nedávno se mě jeden kolega zeptal jestli budeme mít anemic domain model (chudokrevný?). Byl jsem trošku v rozpacích co tím myslí. Po krátke diskuzi jsme si vyjasnili termíny (problém jsem znal, ale termín jsem zapomněl) a já jsem prohodil, že asi budeme. Když nad tím přemýšlím, musím říci, že to byla blbost.

Import velkých dat do MySQL

MySQL
Ještě něž jsem zahájil svou dovolenou, jsme při dokončování projektu narazili na výkonnostní problém při velkém importu dat do MySQL databáze. V našem případě se jednalo o cca 30 tisíc záznamů do tří tabulek navzájem provázaných cizími klíči. Úvodní verze importního algoritmu trvala cirka 50 minut, po dvou dnech jsme se dostali na jednotky...

Využití UJO v Hiberante

Tento článek se zabývá využitím UJO objektů v prostředí ORM frameworku Hibernate.Jaký může být důvod nahradit klasické POJO objekty invazivnější alternativou?

Java Message Service 1.1

Tento paper pojednává o JMS 1.1 a jeho vztahu k produktu TIBCO Enterprise Message Service 4.x. TIBCO EMS je založen na JMS, což je specifikace (nikoli implementace) pro systémy zasílání zpráv od firmy Sun, která ve verzi 1.1 nabízí dvě monosti posílání zpráv: point-to-point – zpráva je přes server doručena od jednoho odesílatele...

iBatis 3.0 preview - část druhá

iBatis
V předchozím článku jsme si ukázali vylepšení iBatisu v souvislosti s XML deklaracemi. Tento navazující článek rozebírá novinky v oblasti Java API. Základem pro toto rozšíření se staly vlastnosti dostupné od verze Javy 1.5 - tedy generiky a anotace. Jednou z velkých kritik původního iBatisu bylo množství XML, které bylo nutné psát. Našlo se...

Tomcat - Sdílený back-end

Tomcat logo
Téměř všechny příklady a tutoriály, jak konfigurovat Tomcat popisují jen ty nejjednodušší případy a aplikace. My jsme potřebovali Tomcat nakonfigurovat tak, aby několik web aplikací mohlo sdílet jediný modul obsahující servisní a DAO vrstvy. V tomto článku vám ukážu, jak na to....

iBatis 3.0 preview - část první

iBatis
Po letech jsme se konečně dočkali třetí verze populární knihovny iBatis. Nová verze přináší velkou řadu novinek a jedná se o kompletní rewrite, který využívá generik, anotací a dalšího API Javy 1.5. iBatis je prozatím ve verzi Beta 1 (doposud ještě není dostupný ani v Maven repository), ale doufejme že nebude dlouho trvat a dočkáme se...

Prezentace - Java EE 6 and how their relate to Spring Framework

spring logo
Jürgen Höller presents some of the new features coming in Java EE 6 and how their relate to Spring Framework: Profiles, Servlet 3.0, JSR-236 Concurrency, JSF 2.0, JPA 2.0, JSR-303, JAX-RS, EJB 3.1, JSR-299. Doporučuji juknout až tak od 25. minuty záznamu. Z meho pohledu Java EE 6 zatím vypadá jako jeden velký rozharany stroj. Tak uvidíme jestli se...

Implementace audit info pomocí Spring AOP

spring logo
Jakákoliv forma informace o aktuálně přihlášeném uživateli a timestamp bývá často součástí každé entity v projektu. V následujícím příspěvku je popsána jedna z možností jak lze jednoduché audit informace do entity vložit bez velké námahy a zásahů do existující struktury vrstev aplikace pomocí Spring AOP.

Nové ORM 8x rychlejší než Hibernate

Dovoluji si představit Vám nový ORM framework českého původu s názvem UJO-ORM, který je postaven na architektuře UJO objektů. Nové ORM řešení vzniklo ve snaze usnadnit vývoj perzistentní vrstvy, nicméně výkonnostní testy ukazují, že dotazy typu SELECT jsou osmkrát rychlejší ve srovnání s Hibernate.

Konec Spring Modules, nastupuje Spring Extensions

Opožděně jsem si všimnul, že projekt Spring modules již není aktivně podporován (je deprecated) a místo toho je doporučeno přejít na Spring Extensions.Spring Modules obsahuje rozšíření, moduly, pro jednodušší napojení Spring frameworku na knihovny třetích stran. Kromě toho nabízí pro určité oblasti odstínění od konkrétních technologií, např....

Spring ROO

Poprvé jsem o projektu Roo slyšel na konferenci SpringOne v červnu v roce 2007. Tehdy vlastně jen oznamovali začátek projektu a musím říct, že mě to nijak příliš nezaujalo. Dokonce jsem si na tento projekt vzpomněl minulý rok na podzim a myslel jsem si, že ten projekt již dávno skončil.A neskončil. Po dvou letech se objevila první verze, oznámení...

Integrace Groovy ve Springu

V poslední době zažívají skriptovací jazyky boom. Jedním z takových je i Groovy, který funguje ve virtuálním stroji Javy. Přímý přechod z jednoho jazyka na druhý ve firmách zpravidla není možný, naštěstí Spring umožňuje jeho integraci.

Tapestry 5 – práce s formulářem, uložení pomocí Hibernate

V druhém dílu našeho miniseriálu rozšíříme znalosti frameworku Tapestry 5, zaměříme se na vytvoření jednoduchého formuláře a jeho uložení pomocí OR nástroje Hibernate.

Tapestry 5 - úvod

MVC framework Tapestry ve verzi 5 doslova chytl druhý dech. Proto jsme pro Vás připravili miniseriál o tomto nástroji. Díl první popisuje framework a podává návod na jednoduchou aplikaci.

Spring security namespaces

spring logo
Koncept "namespaců" resp. možnost vytváření vlastních konfiguračních XML tagů je ve Springu již od verze 2.0 a již je celkem hodně zajímavých tagů - ať už přímo ve Spring frameworku nebo v jiných Spring knihovnách nebo i v knihovnách třetích stran, např. DWR. Cíl je jasný - umožnit jednodušší (= rychlejší, přehlednější, jasnější, ...) konfiguraci...

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í.

JasperServer Input Controls pro volbu více hodnot

Dříve či později při vývoji reportů nad JasperServer narazíte na požadavek, aby parametry a vstupní prvky dovolovaly zvolit více jak jednu hodnotu. Typicky je třeba prvek, kde se volí právě jeden prvek, jeden a nebo všechny, a nebo jeden až všechny. Dnes popíšu, jak vytvořit vstupní prvek s možností volby různého počtu hodnot. Základem je...

Kontroverze kolem Dependency Injection aneb když dva dělají totéž není to totéž

Minulý týden udělali SpringSource a Google (respektive vývojáři Guice framewrku) společné oznámení, ve kterém představili návrh anotací určených k řízení Dependency Injection (dále DI). Zajímavost této události je v tom, že v prostředí Java EE již existuje poměrně pokročilá, né-li hotová, specifikace pod JSR 299 dříve nazývaná Web Beans....

Spring One - závěrečný den

Spring One Europe - logo
Dnes se mi podařilo vychytat velmi dobré přednášky, takže jsem si po včerejším dm Serveru rozhodně spravil chuť. První dnešní přednášky se týkala Groovy a především novinek ve verzi 1.6. Zprvu se zdálo, že Guillame pojede pouze po povrchu Groovy, ale brzy se přednáška rozjela, takže si z ní člověk nakonec odnesl opravdu hodně. Přednáška stavěla...

Spring One - den druhý

Spring One Europe - logo
Dnešní den přenesl (alespoň v mém případě) řadu roztrpčení. K tomu se ale dostanu až o pár odstavců později. Dnešní keynote se nesla v duchu Lean software development - a to především ve smyslu, jak se co nejrychleji dostat z fáze vývoje do fáze produkčního běhu. Přednáška byla poměrně zajímavá - Adrian Colyer ukazoval prostřednictvím STS živý...

Spring One - po prvním dni

Spring One Europe - logo
Dnes začala v Amsterodamu konference Spring One zaměřená na technologie okolo Spring Frameworku (Spring samotný, Spring MVC, Spring WebFlow, Grails, Spring Batch, Spring Security, Spring tc a dm Server atd.). Konference se koná v hotelu Krasnopolski v úplném centru Amsterodamu. My jsme přijeli o den dříve, abychom si město stihli v klidu...

Komponenta pro vyhledávání, třídění, stránkování, ...

Vyhledávání záznamů a jejich zobrazení je tak často se opakující věc, že by se zdálo, že už to má každý vyřešený. Bohužel tomu tak není, některé problémy se opakují pořád dokola - je nutné zobrazovat celkový počet záznamů? Je nutné mít možnost přejít na poslední stránku výpisu? Je možné, aby se v průběhu stránkování nebo třídění měnila data?...

Java Web Start vs. "normální" web

Minulý týden jsem se snažil napsat porovnání technologie Java Web Start s "normálními" webovými technologie jako jsou JSP, JSF, Velocity atd. Nešlo mi tedy o konkrétní webovou technologii, jako spíše o porovnání dvou světů. Porovnání bylo pro mého kamaráda, který by rád určitou aplikaci a má představu, že JWS by mohlo být to pravé. Já...

Java, Hosting a AppEngine

Roman rozebírá, jak se po technické stránce liší nabídka GAE pro Javu od toho, co by se dalo očekávat od běžného hostingu a zda GAE bude těmto hostingům konkurencí. Podíval bych se na to z jiného úhlu - takový “běžný hosting” řeší úplně opačný problém než GAE, a to efektivní hostování mnoha relativně málo zatěžovaných aplikací...

Google Application Engine, konec Java hostingu?

Minulý týden oznámila firma Google podporu Javy pro jejich platfotmu Google Application Engine. Byla to zpráva poměrně překvapivá, protože dlouhou dobu vše nasvědčovalo tomu, že Google zvolí jiný jazyk kvůli všeobecně známé problematičnosti s hostováním Javy. Alespoň takové byly náznaky nebo alespoň jejich interpretace uvnitř Java komunity, které...

Prezentácia k Spring MVC 2.5: úvod a filozofia

spring logo
Spring MVC 2.5 je aplikačný rámec pre vývoj webových aplikácií založený na princípoch Springu, konfigurácii založenej na konvenciách a anotáciách.V prezentácii ukazujeme základnú filozofiu aplikačného rámca spolu s ukážkami kódov.

Spring MVC: GET kontroler

spring logo
Spring MVC nabízí pro zpracování požadavku GET dva základní kontrolery: ParameterizableViewController - jednoduchý kontroler, který pouze vyžaduje zadání cílového view, které se následně zobrazí. BaseCommandController - kontroler, který pracuje s parametry requestu přes commandy. Tedy kontroler automaticky mapuje parametry requestu do atributů...

Problémy s kódováním v AJAXu a jak na ně

V prosinci jsem znovu řešil problém s kódováním českých znaků při AJAXové komunikaci se serverem. Znovu říkám proto, že jsem stejný problém řešil před pár měsíci, ale řešení jsem stihnul úplně zapomenout. Tentokrát jsem si ale poklepal na čelo a říkám si: “Furo tvá paměť se horší, zapiš to nebo nad tím budeš za měsíc trávit čas znovu”.

Hibernate: přistupovat pomocí polí nebo vlastností?

O co jde? Když mapuji entity, můžu si vybrat, jak bude Hibernate k objektům přistupovat. Mohu například napsat takovouto třídu. V takovémto případě bude při načítání z databáze Hibernate data zapisovat přímo do polí. To znamená, že například pro ID nemusíme mít vůbec set metodu, Hibernate nebo jiný JPA poskytovatel to tam magicky zapíše. Nebo mohu...

JavaRebel - vývoj bez restartu serveru

Jedná o JVM plugin, který umožňuje za běhu aplikace upravovat Java kód tak, že se změny hned promítnou do běžící aplikace. To zní hodně podobně jako standardní JVM HotSwap, ale JavaRebel toho umí mnohem více, např. přidání nové proměnné do třídy, metody, změna anotace apod.

Podcast: Záznam z přednášky iBatis SqlMaps

Tento týden proběhla na Univerzitě v Hradci Králové přednáška na téma iBatis SqlMaps. V přednášce jsem se snažil projít všemi základními funkcionalitami iBatisu a porovnat jej krátce s několika dalšími přístupy k implementaci datové vrstvy (plain JDBC, JPA / Hibernate) a podívat se co nového nás čeká v nové verzi iBatis číslo 3. Kvůli...

Springframework mockujeme beany

spring logo
V tomto článku si ukážeme, jakým způsobem je možné docílit mockování bean (POJO managovaná Springem). Představme si situaci, kdy chceme některé z naších bean pro běh testů nahradit mocky.

Proč pořád webové služby?

K dnešnímu článku mě inspiroval můj bývalý kolega, který se jednou naučil webové služby a od té doby je používal úplně všude - bez ohledu na to, že by se mnohdy dalo použít lepší (rozuměj jednodušší, efektivnější) řešení.Napadá mě zde analogie s EJB. Mnoho lidí se naučí EJB a od té doby je používají bez ohledu na to, zda skutečně EJB kontejner v...

iBatis 3 žije!

Nedávno jsem diskutoval s Jirou jestli se stále ještě můžeme těšit na iBatis verze 3. Je tomu poměrně dávno, co se nějakým výraznějším způsobem modifikoval iBatis 3 Whiteboard a nenašel jsem žádnou další stopu kdy a zda-li vůbec bude iBatis 3 vydán. V projektovém issue trackeru je k 3.x verzi velmi malá aktivia, ačkoliv v Subversion existují nějaké...

Pozvánka na přednášku na UHK iBatis SqlMaps

Po relativně krátké době se chystá nová přednáška na Univerzitě Hradec Králové - tentokrát o knihovně iBatis, která řeší objektově relační mapování tak trochu jiným způsobem než jde JPA a Hibernate. A to způsobem, který vyhovuje nejen nám, ale i tisícům vývojářů po celém světě. iBatis je řešením, které leží někde mezi JDBC a JPA - na jednu...

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...

Překonaný ResourceBundle, Spring MessageSource vítězí v prvním kole KO

Tento článek mám ve WordPressu rozepsaný snad už rok. Jeho původní název zněl “ResourceBundle - stačí Javě beze změny?”. Plno věcí, které jsme původně jako Java vývojáři dělali my, postupně uzpůsobujeme tak, aby je mohli dělat web designeři. Na prezentační vrstvu zcela jistě patří lokalizované texty a zprávy, pro které standardně...

Jak selektivně podle třídy mazat objekty z Hibernate session

Moje honba za LazyInitializationException byla úspěšná (musím se přiznat, že velkým pomocníkem mi byl Eclipse Memory Analyzer, který mi pomohl zjistit, kdo se na objekt odkazuje). Problém byl v tom, že jsem chtěl vymazat objekty ze Sessiony, ale protože jsem neznal jednotlivé instance, zavolal jsem metodu clear a znova zaasocioval to co jsem si...

ORM mých snů - iBatis 3

Všechny velké zajímavé projekty aplikací, na kterých jsem se podílel jako ORM používali Hibernate. Přiznám se, že jsem byl tímto frameworkem zpočátku nadšen. Pak moje nadšení trochu ochablo, ale verze 3 zase přinesla vylepšení, která jsem kvitoval (především z hlediska mapování). Postupem času, ale čím dál tím víc cítím, že Hibernate (a v...

Spring certifikace

Tento týden jsem napsal testy a získal certifikaci "SpringSource Certified Professional".Rád bych se s vámi podělil o nějaké mé postřehy či zkušenosti z přípravy a samotného testu.Člověk musí nejdříve získat "povolení", aby vůbec mohl dělat testy...

WebBeans

Včera jsem si četl dokumentaci k WebBeans. A ač opravdu nemám rád EJB a i k anotacím se stavím dost rezervovaně, docela mě to zaujalo. Je tam pár zajímavých nápadů, které mi docela rozšířily obzory...

Apache Wicket - Hot Deploy html souborů

Při vývoji javovských webových aplikací nad aplikačním serverem (Glassfish) či jen nad samotným webovým kontejnerem (Tomcat), dochází k jedné nepříjmené situaci a tím je nahrání aplikace na server. Pokud se jedná o malý projekt, je čas strávený nad undeploy/deploy mizivý. Jak ale projekt začne růst, roste s ním i čas, který strávite při nahrávání...

jQuery effects - quick start

V minulém článku, ve kterém jsem se zabýval JavaScript Closures, jsem se zmiňoval o tom, že mě k jejich studiu donutilo používání efektů z knihovny jQuery. Také jsem sliboval, že o svých zkušenostech něco málo napíšu v dalším článku. Nuže směle do toho. jQuery je obecná knihovna obalující odlišné implementace (více než odlišnosti jazyka,...

JSF: zkušenosti s NetAdvantage

O NetAdvantage komponentách jsem již několikrát psal (1, 2, 3) a rád bych napsal ještě jednou a tím to uzavřel. Již jsem se dříve snažil o nějaké zhodnocení a na to bych rád dnes navázal. Pokud se od té doby něco změnilo nebo jsou určité věci jinak než dříve, tak to nyní uvedu, jinak platí to co jsem již napsal. S NetAdvantage komponentami jsme...

Apache Wicket - Znovupoužitelné komponenty

Tvorba vlastních komponent je u komponentově orientovaného web frameworku, důležitá vlastnost. Jen težko bych hledal projekt, který by si vystačil s existujícími vlastnostmi a komponenty daného rámce a nesnažil se o vlastní tvorbu.Ve Wicketu je tvorba nových komponent jednoduchá....

JBoss: entity beans a dědičnost

Dnes se podíváme na různé způsoby ukládání objektů, které jsou si navzájem potomky a rodiči, tedy mají mezi sebou nějakou hierarchii. Ukážeme si, jaké tabulky se při daném nastavení vytvoří v databázi, jak vypadají SQL dotazy pro načtení jednoho a všech objektů a jaké s tím jsou spojené výhody a nevýhody.

JPA 2.0

Nedávno zveřejněná specifikace JPA 2.0 obsahuje asi nejzásadnější posun v možnosti psaní Criteria API. Pokud někdo očekává okopírované Criteria API z Hibernate bude možná trošku zklamán (či potěšen). Nový způsob je totiž více postaven na „objektovosti“ daných entit. Dobrý zdroj a ukázku lze najít na blogu Gavina Kinga. Osobně toto považuji za...

Překlad výjímek z databáze při použití Hibernate

hibernate logo
Kdo používá Hibernate, ten možná již tuší, kam budu dnešním příspěvkem mířit. Jde o to, že chyby, které detekuje Hibernate se snaží do výjimky dávat jméno třídy a atributu, který chybu vyvolal. Ovšem pokud vám chybu vyhodí databáze, pak vás Hibernate nechá ve štichu a předhodí vám výjimku datábáze a dělejte si s ní co chcete.Toto chování se mi...

JBoss Microcontainer

jboss logo
V souvislosti s releasem aplikačního serveru JBoss verze 5 (po třech letech - neuvěřitelné!) jsem narazil na subprojekt JBoss Microcontainer. Jedná se o samostatný, na aplikačním serveru nezávislý, kontejner, který kromě IoC, které se samo nabízí, poskytuje například podporu AOP a deployment rozličných komponent OSGi bundly počínaje, přes staré...

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?

Webové služby à la Spring

V poslední době docela často používal knihovnu Spring WS. Chtěl bych se s vámi podělit o zkušenosti, které jsem s tímto modulem udělal. Nejdřív bych měl ale upozornit, že nejsem expert na webové služby. O tom co je to port nebo binding mám jen mlhavou představu. Na druhou stranu jsem to nikdy vědět nepotřeboval...

JSF - sestava sedmi statečných

V předchozím článku jsem zmínil naší sestavu sedmi frameworků resp. knihoven, které používáme pro vývoj s JSF. Některé knihovny byly dané již od začátku, některé se ukázaly jako nezbytné až v průběhu samotného vývoje...

JSF zase nejsou tak špatný ...

Sice se zpožděním, ale rád bych reagoval na nedávno vydané články o JSF (1, 2). Možná bych spíše měl napsat doplnil místo reagoval, protože se vším co bylo napsáno souhlasím - na komponentovou technologii JSF jsem přešel teprve letos na jaře a přechod to byl celkem bolestivý. U mě to bylo ještě umocněný tím, že jsme si vybraly NetAdvantage...

JSF vs. Tapestry - tentokrát AJAX

Zase trochu přileju olej do ohně, tentokrát se podíváme na jednoduchý AJAX příklad. Opět začneme na blogu Jima Driscolla, který napsal A simple Ajax JSF 2.0 example. Při pohledu na tento příklad se opět nemohu ubránit dojmu, že vývoj stránek je v JSF opravdu děs, no posuďte sami

Spring nabyl Groovy a Grails

Rod Johnson právě oznámil akvicizi společnosti G2One stojící za dynamickým jazykem Groovy a Grails.

Ako porozumieť dependency injection v Springu

spring logo
Čo je dependency injection? A inversion of control? Na čo je to vlastne dobré? Na jednoduchom príklade baru a piva ukážeme princípy tohto často používaného návrhového vzoru a ukážeme si, ako ho používa Spring.

JavaScript Closures - překvapení Java programátora

Javascript používám několik let, snad už od doby kdy jsem na univerzitě začal koketovat s webem. Celou dobu ho používám jen na jednoduché skriptování bez ambic na jakýkoliv propracovanější programovací model. S nástupem kvalitních frameworků jako je třeba jQuery, PrototypeJS, MooTools, Script.aculo.us a další, je člověk přinucen ponořit se do...

Krátké zamyšlení nad webovými frameworky

Dagi si pěkně ublognul o Java Server Faces.  JSF mi od počátku připomíná EJB - ambiciózní nabobtnalá specifikace, z jejíž první implementace se mi protáčely panenky. Namátkou - opravdu autorům přišlo normální dělat hyperlinky jako jako javascriptové odesilání skrytých formulářů?  Za zásadní problém (nejen) JSF považuju to, že se snaží zapouzdřit...

JSF nemá mou důvěru

K tomuto zamyšlení mě vyburcovalo přečtení článku JSF vs. Tapestry - jak jednoduché je dělání komponent a letmé nahlídnutí do JSF specky 2.0 (zdroj JavaServer Faces 2.0 Composite Components). Nevím jestli se tomu dá říkat předpojatost, možná ano, možná ne, ale technologie JSF ve mě prostě nebudí důvěru. A mám k tomu několik pádných důvodů.

Spring a jeho další směřování v enterprise oblasti

V rozhovoru SpringSource Elected Newest Executive Member of the Java Community Process poodkrývá Rod Johnson další budoucnost Springu a jeho další směřování v JEE oblasti. To co se dalo číst mezi řádky vyplouvá v tomto rozhovoru na hladinu. To nejdůležitější co jsem si odnesl odpovídá v podstatě tomu, co si již dávno myslím.

JSF vs. Tapestry - jak jednoduché je dělání komponent

Opět jsem narazil na velmi zajímavý blog, který porovnává složitost vytváření komponent v JSF 2.0 a Tapestry 5 ("Simple" JSF 2.0 Component vs. Tapetry).Samotného mě takové porovnání již dlouho zajímalo, protože jsem se o JSF přestal zajímat někdy okolo verze 1.0, přišlo mi zkrátka moc složité a komplikované. Navíc mělo veliké problémy na...

Seam 2.1.0.GA

seam logo
Sice už to není žhavá novinka, ale vyšel Seam 2.1. Tato nová verze má některé nové vlastnosti. Asi nejzajímavější jsou...

jOpenSpace 2008 - Spring - otevřenost novinkám

Už jsem se bál, že zbytek záznamů z nultého ročníku jOpenSpace neexistují a hned jsem dostal odpověď v podobě dalších pěti záznamů. Šestým v pořadí je záznam od Dagiho Spring adoption in large enterprise project. Spring používáme a převážně jako IoC container, tak mě toto téma zajímalo. Bohužel kvalita zvuku je hodně špatná, takže jsem spíš...

Bezpečnost webových aplikací

7. října jsem vystupoval na konferenci Europen s příspěvkem “Bezpečnost webových aplikací”. V tomto článku najdete záznam a slajdy.

Jaký webový framework používáte - výsledky

První minianketka je u konce s těmito výsledky:Spring MVC (36%)JSF (34%)Struts (16%)Něco jiného (14%)Samotné JSP a JSTL (8%)JBoss Seam (8%)Apache Wicket (6%)Spring Web Flow (6%)Tapestry (4%)

Spring bean z Java enumu

Dneska jsem potřeboval vytvořit ve Spring IoC Java enum, ale jak na to. Než jsem začal vytvářet nějakou factory, řekl jsem si, že to už musí být vyřešené. Google pomohl a našel jsem blog post Creating a Spring Bean from a Java 5 Enum.Ve stručnosti se věc dá shrnout do dvou ukázek...

jOpenSpace 2008 - ORM - Hibernate a klientská aplikace

Klientské aplikace napsané v AWT, Swingu nebo SWT mají jedno velké specifikum oproti aplikacím webovým. Tím specifikem je jednovláknovost těchto knihoven. Tj. kód, který přistupuje k UI tak musí činit z UI vlákna (ve webové aplikaci má každý request své vlákno - skoro vždy). Z tohoto vlákna tedy není vhodné provádět náročné akce, protože dojde...

Spring zmenil politiku aktualizácii - rana pod pás open-source?

SpringSource oznámil zmenu politiky vydávania verzií Springu, ktoré budú k dispozícii komunite. Čo sa vlastne stalo? Je situácia naozaj taká tragická? Naozaj nastane koniec open-source?

IoC anti patterns nejen pro Spring

Při procházení kódu aplikací, které jsem sám dělal a nebo které jsem procházel jsem narazil na několik často se opakujících anti vzorů (anti patterns) při použítí Inversion of Control (dále v textu pouze IoC) frameworku. Rád bych se s vámi o tyto vzory podělil, aby jste neopakovali stejné chyby, které udělal někdo před vámi. Většina uvedeného kódu...

Trocha dávky Apache Wicket

Apache Wicket je zajímavý hned z několika důvodů. Některé z nich jsem prezentoval minule a proto dnes přidám snad jediný důvod: baví mě v něm psát aplikace. Každý, kdo má alespoň obecnou znalost tohoto frameworku, musí si daný způsob ihned spojit s psaním aplikací ve swingu. Asi bych to vyjádřil slovy: piš to jako ve swingu a přidej k dané...

Optimalizujeme Hibernate

hibernate logo
Při vývoji s Hibernate můžete narazit na výkonnostní problémy. Tento fakt je způsoben především tím, že Hibernate přidává další abstraktní vrstvu a pokud Vám jeho funkčnost není zcela známa, můžete narazit na problémy.Chtěl bych zde osvětlit postupy, které my používáme při vývoji aplikací, abychom dosáhli co nejvyššího výkonu.

Bedáky nad JAXB - problém s pluginmi

Snaha používať pluginy pre generovanie tried v JAXB niekedy môže viesť k zdĺhavému ladeniu... ktoré skončí pri pekle s classloadermi. Popisujeme spôsob, ako rozbehať pluginy pre kompilátor schémy v JAXB 2.1.

Generické DAO pro Hibernate/JPA

hibernate logo
Nečekejte žádnou raketovou vědu, ale jenom takový malý tip ;-). Na pár projektech jsem se setkal s tim, že pro každou entitu bylo ručně vytvořeno a nebo vygenerováno DAO. Většina těchto DAO objektů však obsahovala pouze metody pro CRUD operace (Create, Update, Delete) pro danou entitu. To vedlo k často se opakujícímu kódu, který rozhodně nebyl...

JSF s NetAdvantage

Pro poslední projekt jsme se rozhodli použít JSF. Jedná se o intranetovou aplikaci s velkým důrazem na vzhled a funkčnost grafického rozhraní, takže jsme si řekli, že by to nemuselo být špatné to udělat pomocí JSF. Moc zkušeností s JSF jsme v týmu neměli, takže jsme se rozhodli použít nějakou komerční JSF distribuci, zejména kvůli podpoře. Nakonec...

Hibernate - práce s kolekcemi, ManyToMany vazba

hibernate logo
S Hibernatem dělám již celkem dlouho, ale i tak pořád narážím na nové a nové věci (to bude asi tím, že jsem manuál k Hibernate celý ještě nečetl a vždy se učím až za pochodu). Teď naposledy jsem řešil celkem intenzivně kolekce a asociace. Hibernate z pohledu kolekcí rozlišuje tři základní implementace...

JSF - FacesTrace a MyFaces Orchestra

Teprve nedávno jsem začal používat JSF a musím se přiznat, že se v tom pořád tak nějak plácám. Jsem zvyklý, že při programování mám vždy vše pod kontrolou, ale tady z toho takový pocit nemám. Ale toto téma si nechám až na nějaký další článek.V tomto článku bych chtěl zmínit dvě knihovny, které mi celkem zpříjemnily mojí práci s JSF...

Trochu o designu API

Včera večer jsem ještě se sirkami v očích dopisoval nějaké postřehy ke code review prezentaci, kterou budu mít v pondělí a zároveň jsem konečně dorazil rozhovor s Jardou Tulachem k vydání jeho knihy Practical API Design s podtitulem Confessions of a Java Framework Architect. Musím předeslat, že ten rozhovor na mě udělal dojem, že tato kniha nesmí...

Synchronizace kolem objektů v HTTP session

Rozečetl jsem knihu Java Concurrency in practice a jen tak letmo mezi stránkami mě napadlo, že většina webových aplikací, na kterých jsem dělal, vlastně byla thread safe jen tak na oko. Slabé místo představovaly objekty, které ležely v session a mohlo dojít k jejich současnému použití různými vlákny.

Beans introspection - základy Springu

spring logo
Je tomu už drahně let, co jsem používal k populaci JavaBean Commons-BeanUtils z rodiny Apache Jakarta. Od chvíle, kdy stavím svoje aplikace nad Springem, pozbývá používání této knihovny smysl - naopak bylo by bláhové se této knihovny držet, když Spring nabízí již ve svém základu mnohem víc. Prostým logickým úsudkem lze odvodit, že Spring coby IoC...

WebServisování, díl první - pojem WebServisa ( Web Service )

Dneska jsem Gůglil něco o JBossu a WebServisách a narazil jsem na terminologický problém - pod pojmem Raw Service si různí lidé představují různé věci. A protože jsem si sám nebyl jist, rozhodl jsem si všechno zase oživit, nastudovat a taky o tom něco napsat. Navíc vzhledem k několika diskusím, které jsem tu na téma WebServis rozvířil a v nichž se...

Jak oRESTovat Javí aplikaci

Dneska ráno jsem našel naprosto zajímavý článek, první ze série o RESTu, který objasňuje REST na příkladu jeho převedení do světa Javy.První díl vzali autoři z trošku jiného konce - začali od Bindingu neboli vazby mezi klientem a serverem. Vazbu v RESTu definují jako asociaci logického jména na něco "fyzického", třeba kusu kódu, kus...

Autorizácia v JSF

Pre neinvazívny spôsob kontrolovania stavu zobrazenia komponent v JSF aplikácii môžeme využiť knižnicu jReCo (JSF Rendering Controller). Táto knižnica funguje ako plugin, ktorý vsunieme do našej aplikácie a buď dovolíme, aby jReCo ovládalo aplikáciu plne automaticky, alebo necháme na programátora, aby sa sám rozhodol, kedy má jReCo vyhodnotiť...

Logování J2EE aplikací v Tomcatu 6.0

Vývojáři v development verzi Tomcatu (6.0) změnili způsob logování. Dříve se používal toolkit commons-logging (který ve verzi 5.5 nahrazoval vlastní Tomcat logger). Nyní je všechno úplně jinak – Tomcat 6 používá vlastní implementaci JULI založenou na java.util.logging API (vlastní handlery, které umějí rotovat soubory). O tom jak nastavit...

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?

Od WSDL k webovej službe - Glassfish Metro

V predošlej časti sme sa venovali ručnej tvorbe WSDL súboru. Teraz prístupime k vygenerovaniu a publikovaniu webovej služby, ktorá bude na ňom založená, a to pomocou aplikačného rámca Glassfish Metro. Tým získame webovú službu, ktorá implementuje aplikačné rozhranie JAX-WS 2.0.

Závažná bezpečnostní chyba ve Springu odhalena!

Otázka: Je pravda, že v Košicích upálily rusa? Odpověd rádia Jerevan: Ano, je to pravda, ale nebylo to v Košicích, ale v Kostnici a nebyl to rus, ale Hus. Myslel jsem si, že jsem expert na senzační titulky. Ale tento je nepřekonatelný. Mohli jste na něj narazit dnes, například na theserverside.com. Na první pohled to vypadá, že našli závažnou...

Jak zjistit informace o pluginu v Mavenu

Pokud potřebujete zjistit informace (zejména parametry) nějakého pluginu do Mavenu, je potřeba navštívit stránku vygenerovanou cílem „site“, kde je kompletní popis všeho a často také nějaký ten příkládek. Pokud však daný plugin takovou stránku nikde na internetu nepublikuje, je to problém. Naštěstí je tu describe plugin, který potřebné...

Verzování entit - JBoss Envers

Sledování historie změn není nijak výjimečný požadavek, a proto mě i celkem překvapuje, že na tomto poli nejsou (nebo jsem nenašel) skoro žádné open-source projekty, které by toto řešily. Jeden jsem však našel a jmenuje se JBoss Envers. Nemá cenu opisovat, to co je uvedeno na webu projektu, jen bych zase uvedl pár poznámek. Envers potřebuje pro...

Reverse Ajax s DWR, Spring, iBatis

Před nějakým časem se v Avedyi rozjížděl nový projekt. Jednalo se o klasický webový chat. Vytvořil jsem tehdy jednoduchý prototyp. Použil jsem DWR a technologii reverse ajax. Pro tento článek jsem původní prototyp trochu rozšířil a zapojil jsem Spring Framework a jako DAO vrstvu jsem vybral iBatis.

NTLM a Spring security

Ještě před pár dny jsem skoro nevěděl, co to je NTLM a dnes tento autentifikační protokol používám v mé aplikaci. Našel jsem na jednom blogu parádní článek, kde je víceméně vše podstatné k implementaci pomocí Spring security řečeno. Nemá cenu se tedy opakovat, spíše bych přidal některé moje poznámky a doplnění...

Od WSDL k webovej službe

V článku predvedieme prvý krok tvorby webových služieb založených na princípe ,,contract-based", teda tých, ktoré sú založené na princípe WSDL->Java. Ukážeme si príklad ručnej tvorby WSDL súboru.

Přechod z Acegi na Spring security

Na minulých projektech jsme používali Acegi security se spoustou vlastních doplňků a vychytávek.  Teď začínáme psát nový projekt a tak jsme si řekli, že je už čas se posunout dát a začít použít Spring security (jeden z důvodů byla podpora NTLM ve Spring security, ale o tom budu psát v dalších příspěvku). V tomto článku bych rád uvedl moje...

Použitie Spring-WS na klasické Java objekty

Spring-WS je aplikačný rámec pre vývoj webových služieb, ktorý otvorene propaguje filozofiu "od WSDL k triedam". Napriek tomu je natoľko flexibilný, že v jednoduchých prípadoch možno rýchlo vyvinúť webovú službu, ktorá vznikla opačným spôsobom. Ukážeme si jednoduchý príklad vybudovania služby, v ktorom sa objekty zasielané v...

OSGi update

Tohle je malé doplnění k článku Petra Jůzy OSGi: Použít nebo nepoužít? na téma OSGi a J2EE. O OSGi jsem měl velice zajímavou debatu s Jurgenem Hollerem (SpringSource) na konferenci tady v Praze minulý týden. Bavili jsme se o možnostech nasazení a podle jeho názoru je nejlepším prostředím pro běh OSGi aplikace...

OSGi: Použít nebo nepoužít?

Hned na začátku článku musím říci, že jsem velký fanda modulárních systémů a OSGi především. Ale to hned nemusí znamenat, že OSGi budu používat vždy a za všech okolností - pro mě je důležité za použitím jakékoliv technologie vidět určitý přínos a tedy důvod, proč danou technologii použít. Samozřejmě to také musí být vyvážené rozumnou pracností.O...

Exkurz do templatovacích enginů v Javě

Templatovací jazyky v Javě mají poměrně dlouhou minulost. První a zřejmě nejznámnější jsou JSP, které jsou součástí javy. Jsou nejstarší z rodiny templatovacích jazyků a přestože jsou masivně používány dodnes, mnoho lidí k nim má své výhrady:psaní JSP je obtížné pro ne-java programátory - přestože původní myšlenkou bylo, aby JSP psali odborníci na...

Metodika návrhu SOA aneb kdy začít s WSDL a kdy s kódem

Přečetl jsem si Vytvářet nejdříve WSDL nebo Java rozhraní od Petra Jůzy a rozhodl jsem se, že také připojím pár svých zkušeností.Na otázku, zda začít nejdřív s WSDL nebo nejdřív implementovat a potom generovat WSDL neexistuje jednoznačná odpověď. A navíc je třeba podle Cimrmana vzít v potaz i roli kohouta, ale nepředbíhejme :-)Bavme se tedy v prvé...

Je čas na Apache Wicket?

Záznam diskuze: L: Ahoj Franto, mám menší problém. F: Jaký Lumíre? L:Nevím, který webový framework pro javu je nejlepší. F: No to jejednoduché. Vyzkoušej těch 40 nejznámenjších a pak se rozhodni. L: Hmm…:( Konec.Ať již člověk navštíví jakoukoli homepage webového frameworku, dočtese, že zvolil dobře. Nejlepší možné řešení, vše jednoduché,perfektně...

Výkonnost PreparedStatementu

Zakořeněným názorem je, že by se měly při práci s JDBC používat PreparedStatementy namísto obyčejných Statementu. Důvody jsou na bíledni, a to větší výkonnost a bezpečnost. Tyto argumenty Vám omlátí o hlavu kde kdo. Otázkou je jak je to s výkonností. Dlouhou dobu jsem si žil s názorem, že využití PreparedStatementu má opodstatnění až při...

Bude MVC model nahrazen architekturou RIA + SOA?

Uvidíme :-)Každopádně jsem si dnes přečetl článek od Nolana Wrighta a řekl si - zase další BFW (Buzz Flame War :-) ). Ale přeci jenom mi to nedalo a trošku jsem se nad tím zamyslel. Nemá samozřejmě smysl papouškovat názory od CEO firmy produkující Appcelerate, platformu pro "tvorbu RIA+SOA aplikací" už jenom proto, že s ním nemohu úplně...

Open-source ESBs

Integrace, SOA, ESB - to jsou buzzwords poslední doby. Není to jen módní vlna, která hlavně vychází z marketingových snah velkých firem, ale také realita současnosti - existuje spousta starých či nových systémů, které je potřeba propojovat. Pokud je těch systémů více (více jak 5), tak už nemá cenu to propojovat přímo mezi sebou, ale využít nějaké...

CISCO nabídne vlastní messagingový protokol

Firma CISCO oznámila, že hodlá uvolnit veřejnosti svůj protokol Etch určený jako náhrada za messagingové protokoly SOAP, CORBA (Notification Service) nebo třeba EJB (Message-driven Beans) používané v SOA. Ačkoli je SOAP, nejpoužívanější protokol pro systémovou integraci, velmi robustní, stojí na základech komplikovaného jazyka WSDL. Nový...

Jak se zbavit HTTP sessions

V příspěvcích o eBay a AppEngine jsem zmiňoval, že používání HTTP sessions nejde úplně dobře dohromady s požadavky na horizontální škálovatelnost.Používat sessions je lákavé, umožňují programátora odstínit od bezstavovosti HTTP protokolu. Na druhou stranu, jakmile aplikace přeroste možnosti jednoho stroje, tak začnou komplikovat život, když chcete...

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.

JavaEE design patterns pro Javu 5.0 a EJB 3.0

Předávám odkaz na blog, který vznikl v rámci diplomové práce a který již obsahuje kompletní seznam J2EE vzorů. 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. Jakékoliv...

SpringSource Application Platform

spring logo
A je to tady. SpringSource společnost stojící za frameworkem Spring oznámila výdání beta verze vlastní aplikační platformy. Tradiční scénář použití Spring frameworku resp. aplikací na něm postavených byl vždy ve spojitosti s aplikačním serverem jakožto poskytovatelem služeb. Nyní SpringSource přicházejí s komplexním řešením (full stackem)...

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...

eBay, Java a škálovatelnost

Jak to vypadá, když se za pomocí J2EE vytváří webová aplikace, jejíž databáze obsahuje přes dva petabajty dat (peta = 10245) a jejíž dvě stě milionů registrovaných uživatelů jejím prostřednictvím v kterýkoli čas nabízí okolo sta miliónů položek?Architektura eBayna nejhrubší úrovni rozděleno na databázovou vrstvu, aplikační vstvu, vyhledávací systém...

Echo2 Web Framework - tabuľka a klávesnica

V tomto článku sa naučíme, ako vytvárať v Echo2 tabuľky. Tabuľky sú veľmi užitočným nástroj a pre našu aplikáciu sú priam nenahraditeľné.

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.

Informace o Web Beans

Popis prezentace Gavina Kinga o Web Beans. Web Beans jsou novou specifikací, která se objeví v Java EE 6. Mezi hlavní účel patří zjednodušení vývoje webových aplikací. Samotné Web Beans jsou inspirovány (kopie) webového frameworku Seam.

Richfaces pro JSF

Komponentový framework jakým je JSF, má několik kladů, mezi kterýmitaké nalezneme možnost rozšíření o vlastní komponenty. I když psanívlastních komponent pod JSF není zrovna triviální záležitost.JSF ve verzi 1.2. nabízí základní komponenty, které mohou býti rozšířitelné, ovšem ne vždy nám vyhovují.  Existence různorodýchkomponent za nás řeší...

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é...

Může Google App Engine vyřešit problém Java hostingu?

K dnešnímu postu mě inspiroval Rick Ross svým článkem Will Google App Engine Support Java? Can it?. Ale vezmeme to pěkně od začátku. Už jste slyšeli o nové službě Google App Engine? Je to jednoduché, představte si, že vezmete svoji aplikaci a deploynete ji na infrastrukturu Googlu.

PermGenSpace problem? No problem!

Tento článek vyšel na našem firemním intranetu. Jelikož je jeho obsah velmi přínosný ve své jednoduchosti a agregace poznatků z řady roztříštěných zdrojů po internetu, požádal jsem autora Michala France o svolení k jeho zveřejnění. Jak to dopadlo, můžete vytušit už sami. Výsledkem je že se s Vámi mohu podělit o zkušenosti s (vy)řešením problémů...

Bezpečnost aplikačního serveru JBoss

jboss logo
Dnes se seznámíme s možnostmi zabezpečení enterprise aplikací v aplikačním serveru JBoss. Zabezpečení je v současnosti žhavým tématem, protože nikdo nechce zpřístupnit své služby nepovolaným uživatelům. Naštěstí nemusíme kód pro autentizaci a autorizaci psát sami, ale můžeme jednoduše využít nabízené služby.

Vytvářet nejdříve WSDL nebo Java rozhraní?

Mé zkušenosti s vytvářením webových služeb resp. WSDL (viz např. minulý článek) mě dovedly ke zjištění, že vždy raději nejdříve navrhnout WSDL a poté si nechat vygenerovat Java kód (WSDL First Development) než opačně - napsat Java rozhraní, přidat anotace a vygenerovat WSDL (Java First Development).Píši vždy, ale myslím tím vždy, když budu mít...

Apache CXF vs. Codehaus XFire

Minulý rok jsem na jednom malém projektíku použil XFire pro zpřístupnění určité funkcionality přes webové služby. Minulý týden jsem opět potřeboval dát dohromady pro účely demo aplikace nějakou webovou  službu a chtěl jsem tedy znovu použít XFire, protože jsem nechtěl nic vymýšlet. Ale hned při zobrazení úvodní stránky projektu XFire se mi...

Autentifikácia a autorizácia v servletových kontajneroch

Autentifikácia a autorizácia je súčasťou skoro každej významnej webovej aplikácie. V mnohých jednoduchých prípadoch na ich realizáciu postačujú prostriedky, ktoré poskytuje priamo špecifikácia servletov. V článku si ukážeme príklad jednoduchej webovej aplikácie, ktorú zabezpečíme a nasadíme v kontajneroch Tomcat a Jetty.

Tak trochu schizofrenní

Dobře jsem se "bavil" při čtení článku Adama Biena s názvem Why some of the Java EE / J2EE projects are inefficient ...or at least suboptimal, ve kterém je předloženo dvanáct důvodů proč jsou některé J2EE projekty neefektivní. Já jsem vypíchnul, některé z nich se kterými jsem se setkal a nebo jsem je sám způsobil.

Echo2 Web Framework - Echopointng, nech sa páči

V tomto článku si predstavíme druhú hlavnú knižnicu rozširujúcu možnosti Echo2. Zoznámime sa aj s ďalšími komponentami a povieme si niečo nové ohľadom starých.

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...

Podpora webových služieb v Java SE 6

Vo verzii 6 prináša Java SE podporu pre webové služby v podobe implementácie JAX-WS 2.0, ktorá je priamo dostupná v platforme. Ukážeme si jednoduchý príklad, ako je možné publikovať triedu ako webovú službu nad SOAP a HTTP bindingom a ako je k nej možné vytvoriť klienta.

Seam - tipy a triky (EJB)

Možnost, jak získat EJB uvnitř "čisté" Seam komponenty. Řešení se týká Seam 2.0 + Glassfish V2.

Spring AOP - Pozor na AspectJExpressionPointcut!

Tento týden jsem řešil problém s nedostatkem paměti při spouštění testů jednoho projektu. Pro běh testů nestačilo výchozích 64MB paměti Javy na heapu, což mi připadlo v porovnání s velikostí projektu podezřelé. Začal jsem profilovat a jelikož mne výsledky poněkud překvapily, chci se s Vámi o ně v tomto článku podělit.Hned na úvod řeknu, že jádrem...

JBoss: Intermezzo - ukázka využití

jboss logo
V minulém dílu jsme mluvili o celé řadě užitečných služeb, které nám JBoss aplikační server poskytuje. Dnes si na velmi jednoduchém Hello World příkladu ukážeme, jak tyto služby využít. Uvidíme, jak malé úsilí musíme vynaložit, abychom dosáhli velkých věcí, a jak nám AS může zjednodušit práci.

Automatický "sběr" objektů daného typu pomocí Springu

spring logo
Nedávno jsem v rámci prezentace Springu resp. jeho IoC kontejneru u nás v HP ukazoval jeden příklad, na který jsem byl úplně nezávisle tázán vícero kolegy. Dnes se s vámi o něj podělím. Problém byl následující: máme objekty, které implementují určité rozhraní. Dále máme objekt (registry), do které chceme, aby se všechny tyto objekty automaticky...

Nadišla jar v krajine DAO alebo použitie Spring JDBC

JDBC (Java Database Connectivity) je štandardný spôsob, akým možno pristupovať z jazyka Java k databázovým systémom. V článku si popíšeme, ako je možné zredukovať množstvo opakujúceho sa JDBC kódu použitím tried JdbcTemplate a RowMapper.

Clustering aplikací na JBoss AS

jboss logo
Po nedávno publikovaném článku Představení frameworku JBoss Seamzveřejňuji ještě jeden materiál „ze šuplíku“. Před krátkým časem jsem se na základě vynikajícího Dagiho článkuJBoss cluster krok za krokem rozhodl vyzkoušet jednoduchý cluster nadaplikačním serverem JBoss. Poznámky z mého bádání jsem shrnul ve forměčlánku a publikoval na našem firemním...

Jsou anotace peklo?

Při čtení některých blogů se člověk dozví, že (s troškou nadsázky :-) anotace jsou něco, co by se nemělo používat příliš často, protože to porušuje vrstvení aplikace. Chtěl bych k této diskusi přispět také svou troškou do mlýna.

Java applety a SSL

Jak jsem již dříve referoval, na jednom našem projektu používáme komponentu ImageUploader pro nahrávání dokumentů do systému. Komponenta se automaticky dle verze prohlížeče spouští jako ActiveX (pro IE) a nebo Java applet. Komunikace mezi komponentou a serverem je zabezpečena pomocí protokolu HTTPS. Dále je důležité říci, že zákazník má vlastní...

Proč nemám rád Seam

V poslední době se hodně hovoří o JBoss Seamu - píší se o něm články (1, 2, 3), přednáší se o něm, u nás v práci se vedou diskuze, zda ho použít nebo ne. Mě už to prostě nedá, abych zapřemýšlel veřejně, protože bych moc rád moje názory zkonzultoval s okolním světem. Ještě než se pustím do "přemýšlení", tak musím poznamenat, že jsem hodně...

Simple JDBC template

SimpleJdbcTemplate nám umožňuje snadno a elegantně pracovat s JDBC. Podporuje pojmenování parametrů, generika atp. Pokud nepotřebujete ORM, stojí za to se na SimpleJdbcTemplate podívat.

Do pranice: komponentové a nebo požadavkem řízené webové frameworky

Ve středu jsem si v rámci CZJUGu náramně užil přednášku Petra Ferschmanna (záznam) o frameworku JBoss Seam. Během poslechu přednášky, kdy Petr mluvil o problémech JSF ve mě začal hloubat červíček pochybnosti, jestli jsou komponentově řízené web frameworky tou správnou cestou. Petr se teď určitě otáčí kolem do kola ve své ředitelské sesli a chytá se...

Acegi Captcha způsob integrace a možnosti použití

V tomto příspěvku se nechci věnovat popisu zprovoznění jCaptchy v bezpečnostní frameworku Acegi Security, jelikož toto je velmi dobře popsáno již v existujícím článku na MoroSystems weblogu. Spíš se chci zaobírat způsobem, jakým se k integraci do Acegi frameworku autoři postavili. Tento způsob mi přijde totiž přinejmenším neobvyklý. Zachovává sice...

Způsoby konfigurace Springu

Když se mluví o Springu, tak to má hned každý spojený s tím, že se vše konfiguruje pomocí XML. Pravděpodobně je to kvůli tomu, že opravdu v minulosti (do verze 2.0) nebyla jiná schopná možnost konfigurace, ale to již dneska v žádném případě neplatí. Jakými způsoby můžeme tedy konfigurovat springovské aplikace? XMLVždy aspoň trochu té konfigurace v...

Spring 2.5 a anotácie pre automatické prepájanie beanov

Jedným z významných prínosov Spring 2.5 je podpora anotácií, ktoré môžu slúžiť ako alternatíva na deklarovanie vzťahov a závislostí medzi jednotlivými komponentami a riešenie dependency injection. Ukážeme si jednoduchý príklad automatického wiringu beanov pomocou springovských anotácií i pomocou anotácii z JEE.

Echo2 Web Framework - naše okno dostáva obsah

V predchádzajúcom článku sme spolu vytvorili prázdne okno. V tomto ho doplníme o formulár pre vytváranie pripomienky na stretnutia. V našom formulári budeme môcť zadať predmet stretnutia, miesto, začiatočný a konečný dátum a pole pre napísanie poznámok. Samozrejme nebude chýbať možnosť odoslania.

Hledám další velkou věc

Taky hledáte další velkou věc, do které stojí za to investovat čas? Hodně lidí se v poslední době svezlo a nebo veze na vlně Ruby a Ruby on Rails. Ač jsem měl k obojímu určité výhrady, tak jsem na druhou stranu nemohl upřít inovaci, které Ruby či Ruby on Rails přineslo. Na Ruby mi vadí syntaxe a některé zkazky (zdravím Zeda Shawa) o RoR ve mě...

Jaký používáte nástroj pro persistency?

Inspirován článkem Is Hibernate the best choice? jsem se rozhodl udělat si malý průzkum, jak je to s čtenáři mého blogu a jimi používanými frameworky pro persistency. Já osobně jsem si prošel přes používání JDBC, iBatisu až po Hibernate a musím říci, že bych se již zpět nevracel.

JSF a hezká URL

Pokud stejně jako my používáte JSF a jsou pro Vás důležitá hezká URL, můžete použít Tuckey's URL rewrite nebo SoftEU URL Rewriter, kteří zařídí přepsání hezkého URL na skutečné URL v JSF stránce.Pravidla mohou přespat URL např. takto:/objednavka/ -> /objednavka/list.jsf/objednavka/100/ -> /objednavka/view.jsf?id=100Pokud přepisování URL...

JBoss: Aplikační server

jboss logo
Aplikační server je v dnešní době poměrně moderní a často používané slovní spojení. Jak si ale takový aplikační server představit? A je skutečně k něčemu potřeba? V tomto článku se pokusíme odpovědět na tyto otázky a představíme si jeden z nejpoužívanějších open-source aplikačních serverů: JBossAS.

DTO a ORM

Jedna z alternativ, jak provést přemapování z entit (persistentní vrstvy) do DTO objektu.

Představení aplikačního frameworku JBoss Seam

seam logo
Podrobné představení aplikačního frameworku JBoss Seam a jeho součástí.

Vytváranie webových aplikácií pomocou Spring MVC 2.5

spring logo
So Springom 2.5 prišli aj významné zmeny v aplikačnom rámci Spring MVC. Na príklade jednoduchej webovej aplikácie si ukážeme najdôležitejšie zmeny - konkrétne možnosť používania anotácií, pomocou ktorých je možné používať klasické POJO triedy v úlohe kontrolérov a aplikácia filozofie convention by configuration.

Spring IoC: syndrom míchání jablek a hrušek

spring logo
Po dlouhé době, delší než by bylo zdrávo, jsem se rozhodl napsat trochu více prakticky orientovaný článek. Ten je věnován problematice míchání managovaných a nemanagovaných tříd při použití Spring frameworku, na které dříve nebo později možná narazíte. Předesílám, že vzhledem k pozdní hodině jeho vzniku, není cílem poskytnout definitivní rozkrytí...

Portlety: Pluto + WSRP4J consumer + BEA WSRP Test Server

Tento spot ma dokumentacni charakter (uz to delam podruhe a treba to nekomu pomuze). Pojednava o rozchozeni vzdaleneho portletu BeaRacing prostrednictvim WSRP4J (subversion verze ke dni 2008-01-22) na vychozim portalu Pluta (1.1.4).

JBoss: Stručně z historie a jemný úvod

Když se řekne JBoss, většina lidí si vybaví aplikační server. JBoss AS je však jen jedním kouskem z velké skládanky open source projektů, které jsou vyvíjeny z části komunitně a z části firmou JBoss. V tomto novém seriálu se postupně seznámíme s jednotlivými projekty formou praktických ukázek.

Zajistil si SpringSource vliv na runtime?

Tak se nám s těmi akvizicemi, lidově řečeno, roztrhl pytel. SpringSource, firma komerčně stojící za Springem, dnes ústy Roda Johnsona oznámila akvizici firmy Covalent. Firma Covalent poskytuje služby kolem populárního serveru Tomcat a široce přispívá do projektů z rodiny Apache.

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.

Serializácia a deserializácia objektov do XML pomocou JAXB 2.0

Technológia JAXB umožňuje mapovanie XML dokumentov založených na XML schéme na Java objekty. Od verzie JAXB 2.0 je však možné realizovať mapovanie objektov na XML bez dodania XML schémy. Článok popisuje spôsob, ako na to.

Echo2 Web Framework - správy, menu a štýly

V predošlom článku sme si povedali niečo stručné ohľadom Echo2 s tým, že sme si naprogramovali základ nášho organizéra. Avšak zatiaľ toho naša aplikácie veľa nedokáže. S tým musíme niečo urobiť! Než si ukážeme nové komponenty, naučíme sa, ako môžeme externe nahrávať správy zo súboru. I keď je toto skôr všeobecný postup, je to niečo, čo využijete v...

Anotace nahrazující SQL a OQL dotazy

Jak obejít opakované psaní OQL dotazů. Anotace mohou být jeden ze způsobů implementace.

Jak se připravit na SCWCD

K Vánocům jsem si dal malý dárek - certifikaci SunCertified Web Component Developer for the Java 2 Platform, EnterpriseEdition 1.4 (SCWCD).Vzhledem k tomu, že s webovou javou dělám skoro tři roky řekl jsem si, že by bylo dobré si své znalosti ověřit. Poslední tři týdny jsem se po večerech (a víkendech) připravoval na zkoušku a v tomto článku ...

Novinky ze Springu

spring logo
Moc často nekomentuji různé události, ale teď mi to nedá. Právě se koná konference The Spring Experience, což jsou spolu s konferencí SpringOne dvě nejvýznamnější konference věnované přímo Springu. Právě na této konferenci se objevily velice zajímavé novinky z dílny firmy SpringSource (dříve Interface21):doplnění Spring portfólia o Spring...

Apache Forrest - děkuji, nechci

V poslední době jsem musel malinko oželet programování vlastních aplikací, protože jsem více řešil nasazení a konfiguraci produktů třetích stran. Jedním z nich byl produkt se jménem Apache Forrest. K čemu je Apache Forrest dobrý? Je dobrý k tomu, když si potřebuji vytvořit webovou prezentaci (a nechci ji vytvářet sám přímo pomocí HTML), když chci...

Pětka technologií pro budoucnost enterprise Javy

Technologie jako Spring, Hibernate a nebo Seam charakterizují nebo charekterizovaly určitý stupeň vývoje. V současnosti se jedná defacto o standardy, které lze jenom stěží považovat za žhavou novinku. Na následujících řádcích jsem se pokusil sepsat pár technologií a konceptů, které by rozhodně neměly ujít vaší pozornosti, protože v budoucnu může...

Terracotta a distribuované metody

Povíme si něco o distribuovaném volání metod (Distributed Method Invocation). Motivace je jednoduchá. Představme si, že uživatel změní přes webové rozhraní globální nastavení aplikace. O této události potřebujeme informovat všechny členy clusteru.

Hrajeme si s Terracottou

Terracotta je nástroj pro clusterování na úrovni virtuálního stroje. Funguje pomocí AOP na úrovni bytecode. Tzn. při startu aplikace upraví bytocode tříd tak, že dostane notifikaci při zápisu a čtení primitivních vlastností (field) objektů.

Spring 2.5 je venku

spring logo
Spring 2.5 se oficiálně dočkal uvolnění. Verze 2.5 je stále kompatibilní s Javou 1.4.2+ a J2EE 1.3+. Pokud chcete rychle vstřebat největší novinku, což je podle mého názoru zavedení anotací pro konfiguraci IoC kontejneru, doporučuji článek What's New in Spring 2.5: Part 1, kde najdete vyčerpávající popis. Další novinkou kolem Springu je...

Echo2 Web Framework - úvod

Predstavte si, že žijete vo svete, kde vládne Java. Ak chcete naprogramovať nejakú peknú stránku, pravdepodobne použijete svoje obľúbené JSP, servlety, Struts - všetko pomiešate, poprípade ešte nejakú technológiu pridáte a stránka je hotová. Jedného dňa sa dozviete o paralelnom svete, kde webové stránky vyzerajú inak. Zdá sa, že na príkazy...

Spring scope

spring logo
Rozsahy platnosti (scope) Java bean jsou už ve Springu dlouho, od verze 2.0. Až donedávna mi ale nedošlo o jak silný nástroj se jedná. Pro ty, kteří nejsou s konceptem rozsahu platnosti obeznámeni, uvedu krátké shrnutí. Už od první verze Springu, si člověk u každého beanu mohl zvolit, jestli chce aby se choval jako sigleton (jedináček) nebo aby...

Moderní JEE™ technologie a nástroje - Spring, Hibernate, Acegi Security, ...

Na závěr našeho studia na Fakultě informatiky Masarykovy univerzity jsme vypracovali sadu tří diplomových prací týkajících se moderních JEE technologií a nástrojů. Naše práce se zabývají aplikačním rámcem Spring, rámcem zajišťujícím autentizaci a autorizaci Acegi Security, ORM nástrojem Hibernate, rámcem pro snadnější práci s layoutem stránek...

Seam 2.0

Tak dlouho očekávané se stalo skutečností a dnes ráno vyšla nová verze webového frameworku Seam 2.0. Ve verzi 2.0 se můžeme dočkat těchto změn ...

Spring != XML

Myslíte si, že Spring rovná se tuna XML? Pak máte poněkud zastaralé informace. Ostatně i v dřevních dobách tomu tak nebylo. Od verze 2.5, v těchto dnech je k dispozici RC1, přináší Spring podporu anotací, kterými lze řídit IoC kontejner. Právě k anotacím a obecně postoji ke konfiguraci Springu vyšly dva zajímavé články od Jurgena Hoellera a Roda...

Přednáška: spring v produkčním nasazení

Pokud nesledujete pravidelně novinky na stránkách Spring frameworku, tak mám pro vás zajímavou informaci - firma Interace21 začala nabízet interaktivní webové prezentace o Springu. Tento týden proběhla první z těchto přednášek na téma "Spring in production". Kromě samotné přednášky, která trvala hodinu, byla možnost stáhnutí dokumentu...

Popis cache v Hibernatu

Tento článek má čtenářům pomoci porozumět, jakým způsobem hibernate přistupuje k datům s využitím vestavěné hibernatí cache. Ono totiž správně nakonfigurovaná cache může také výrazně napomoci snížit zátěž SQL serveru a zvýšit tím jeho celou propustnost. Pokud mluvíme o cachování dat na úrovni hibernatu, jedná se o cacheování na úrovni datové...

Do pranice: Spring Web Flow a nebo JBoss Seam

rávě jsem s naším UI architektem rozebíral dilema, jaký framework zvolit pro naš webový front end. Celá diskuse se se točila kolem Spring Web Flow (dále SWF) a Jboss Seam (dále SWF). Oba frameworky nabízejí přibližně stejné možnosti a tak jsme sklouzávali k drobným nuancím, které alespoň pro mě vyznívají ve prospěch SWF.

Je Spring pomalý?

Omlouvám se za ten senzační titulek, ale to víte, chci na tento blog nalákat co nejvíce lidí, pak tu začnu prodávat reklamu a bude ze mě boháč. No a abych vás neochudil i o nějaký ten obsah, opravdu budu dneska psát o výkonnosti Springu, z počátku obecně, na konci se i dozvíte, jak výrazně zvýšit rychlost některých aplikací ve...

A REST

Representational State Transfer (REST) je koncept pro design distribuované architektury. Distribuovaná architektura v tomto smyslu znamená, že části programu běží na různých strojích a pro svojí komunikaci využívají síť. Pod programem si můžete představit například webovou aplikaci, kde internetový prohlížeč komunikuje s webovým serverem, aplikaci...

Vytváření JSP EL funkcí

JSP EL používám často a sem tam se mi stane, že bych potřeboval použít vlastní funkci. J2EE specifikace nabízí velmi elegantní řešení, jak si rychle takovou funkci vytvořit. Pozn. Přijde mi, že je to v tutoriálu J2EE trochu zapadlé, tak proto jsem se rozhodl o tom napsat dnešní článek.

Lekce ze škálovatelnosti

V článku Teorie a praxe v J2EE světě jsem se pozastavoval nad rozdílem mezi tím, co si můžeme přečíst v chytrých knihách o J2EE a tím jaká je praxe. Praktický pohled poskytla prezentace o architektuře systému eBay. Nati Shalom otevřel související diskusi na téma Why most large-scale Web sites are not written in Java.

Část #4: Modulární systémy ve Spring Framework

Aplikační události jsou jedním ze základních stavebních kamenů Springu a proto by bylo škoda se ochudit o tuto skvělou vlastnost na rozhraní modulů. Je zřejmé, že nebudeme chtít otevřít všechny aplikační události svému okolí, nicméně u řady událostí bychom chtěli umožnit ostatním modulům reagovat. Jako příklad uvedu interakci mezi modulem pro...

Struts - jednoduché výjimky

Jak na jednoduché výjimky ve struts.

Fulltextové vyhledávání (Lucene, Compass)

V dnešní době je celkem běžný požadavek na fulltextové vyhledávání v aplikaci. Uživatel aplikace si již nechce pamatovat všechny ty možné atributy a vybírat možné hodnoty - on se prostě potřebuje dostat k cíli na základě toho co zná a už bez ohledu na vlastní uložení dat.

Autowiring a Spring

Dnes chci psát o autowiringu ve Springu. Nejde o žádnou novinku. Je to funkcionalita, která je ve Springu už od první verze, ale moc jsem ji nepoužíval, protože se mi  nelíbila. Nedávno jsem na ni ale změnil názor.Začněme od toho co to je autowiring. Standardní Spring konfigurace vypadá takto...

Část #3: Modulární systémy ve Spring Framework

V prvním díle jsme si ukázali, jak jednotlivé moduly separovat a propojit ve stromu. V předchozím pak způsob, jak strom udržet konzistentní a refreshovatelný za běhu aplikace. Dnešní díl bude o tom, jak jednotlivé moduly mezi sebou propojit - respektive, jak zajistit interakci mezi jednotlivými moduly.

Vlastnosti IBM WebsPhere Portálu 6.1 Beta

O tom, že byla uvolněna beta verze WebSphere Portalu 6.1 jsem Vás již informoval. Dnes jsem měl trochu času a tak jsem sepsal pár nových věcí, které přínese nadcházející verze WebSphere Portálu 6.0. U mnoha věcí (viditelné je to předvším u themat) jde o rozšíření vlastností, které už má IBM ...

Část #2: Modulární systémy ve Spring Frameworku

V této části seriálu si rozebereme problematiku refreshe stromu aplikačních kontextů. Toto je skvělá vlastnost Springu, která je často nedoceněná a málo používaná. Díky ní je možné jednoduše zahodit všechny současné instance bean definované v aplikačním kontextu a provést kompletní reinicalizaci kontextu s aktuální konfigurací (tak...

Více vývojových prostředí pomocí Springu

Každá aplikace by měla v průběhu svého vývoje procházet několika vývojovými prostředími - vývojové prostředí jednotlivých programátorů, testovací prostředí, prostředí pro akceptační testování a produkční prostředí pro nasazení aplikace u zákazníka. Každé prostředí má svoje specifika - různé konektory k databázím, různé požadavky na...

Část #1: Modulární systémy ve Spring Frameworku

V tomto díle si povíme něco o aplikačních kontextech, jejich vlastnostech a možnosti jejich řetězení do stromové struktury. Tato část je základem principem celého modulární skladby, jejíž detaily vám budu v následujících dílech popisovat. Jak jsem již uváděl v předmluvě, nejedná se o nic světoborného, jen o základní principy Springu.

Spring 2.5 - podpora anotací, testovací framework a další

Nedávno uvolněný 4 milestone verze 2.1 Spring framewroku mě přinutil k migraci na tento release. Na začátek bych ovšem rád vysvětlil jak to bude s verzováním dalších releasu Springu, prototože je to trochu zmatečné. Takže číslo 2.1 se používá pro označení milestonů, číslo označující nadcházející verzi Springu je 2.5 (stále ompatibilní s J2SE 1.4) a...

Seriál: Modulární systémy ve Spring Frameworku

Ve chvíli, kdy začnete používat při vývoji masivněji Spring Framework a začnete vytvářet znovupoužitelné knihovny postavené nad tímto frameworkem, začnete řešit jak z těchto knihoven co nejlépe složit výslednou aplikaci. První myšlenky povedou pravděpodobně těmito cestami:konfigurační soubory jednotlivých knihoven sloučit v jednom velkém aplikačním...

DWR - AJAX knihovna pro remotování Java objektů

Pomocí DWR můžete volat Javovský kód přímo z Javascriptu z prostředí internetového prohlížeče na klientském počítači. DWR se samo postará o vykonání asynchronního požadavku na server a převod objektů z javovského světa do javascriptového.Kromě toho má DWR sadu Utilit, které pomáhají v manipulaci s odesíláním a zpracováním příjímaných dat – plnění...

Jak na rychlé integrační testy ve Springu

Integrační testy spočívají v testování konkrétní kódu spolu s okolními částmi, se kterými spolupracuje. Cílem je snaha otestovat kód ve stavu, který se blíží reálnému nasazení. Obvykle takto testujeme datovou vrstvu aplikace (jelikož tam klasické jednotkové testy ztrácejí smysl - chceme přeci otestovat správné dotazování databáze, tudíž databázi k...

Download binárního souboru přes HTTPS a Internet Explorer

Jsou chyby malé, velké, závažné i triviální, úsměvné, spletité i velmi hloupé. Z celého pokolení chyb je tahle velmi, velmi stará a také dost hloupá. A vypadá to, že z úcty k jejímu věku, ji nechá M$ už pokojně dožít spolu s chatrčí zvanou Internet Explorer.Na chybu narazíte tehdy, když coby Java programátor napíšete servlet, který vrací binární...

jQuery je sexy - javascriptová knihovna pro AJAX, DOM a animace

O jQuery jsem již stručně psal. Teď bych jej chtěl představit podrobněji. Moje cesta k AJAXu Měl bych napsat, že jsem až do nedávna AJAXovou módní vlnu odmítal. Důvody byly následující: nefunkčnost při vypnutém javascriptu složité ladění AJAXových skriptu pro funkčnost ve všech prohlížečích nepřívětivost pro vyhledavače...

J2EE 6 - krok správným směrem

JSR 316 přesně to je číslo specifikace pro Javu EE 6, která otočí kormidlem dějin dopředu a ani krok zpět. A nebo tak nějak podobně by mohla znít trochu překroucená parafráze jedné hlášky z filmového zpracování románu Miloslava Švandrlíka Černí baroni.

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.

Seam 2.0 je tu

Příznivci aplikačního frameworku Seam zbystřete, Gavin King oznámil uvolnění Seam 2.0 beta (diskuse TSS). Seam 2.0 přinese velké množství změn, viz následující list.

Servlety - co nás čeká a nemine (doufejme)

Minulý týden se pod JSR 315 objevila specifikace Servlet 3.0. Netuším sice proč se změnilo číslování, když poslední verze byla 2.5, ale to není to podstatné. Servlet 3.0 specifikace je plánována pro J2EE 6.0 a je řízena dvěma hlavními tématy a to jednoduchý vývoj a jednoduchá integrace web frameworků postavených nad Servlety.

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ť...

Hibernate a optimalizace

Častým argumentem proti používání Hibernate je, že ruční psaní dotazů umožní mít efektivnější a rychlejší program. Chtěl bych vám proto popsat naše zkušenosti s Hibernate a jeho optimalizací pro výkon. Následující článek vám přiblíží některé vlastnosti Hibernate ovlivňující výkon. Budeme předpokládat, že nás zajímá efektivita z pohledu SQL...

Méně vrstev je někdy lépe

Přečetl jsem si článek Populární anti-patterny a chtěl bych v tomto článku ukázat, že to s dnešními moderním webovými frameworky a “čistotou” aplikace není tak špatně. Nejdříve bych rád řekl, co považuji za čistý návrh aplikace: je to taková architektura, ve které se lze snadno orientovat, a která nám umožní “snadno” a “rychle” provádět změny.

Populární anti-patterny

Nedávno jsem na jednom školení vedl polemiku o návrhovém vzoru Data Transfer Objects. Tenhlo vzor de facto odděluje závislosti mezi jednotlivými vrstvami aplikací. Klasický příklad je view vrstva a vrstva business logiky aplikace. Díky DTO není vazba mezi těmito vrstvami tak silná. Dalším pěkným příkladem je View Helper, který slouží jako...

Sdílení session mezi protokoly HTTP a HTTPS

Je možné zajistit bezpečné sdílení HTTP session mezi oběma protokoly? Z dostupné dokumentace se dozvídáme, že nikoliv. Tento článek se zabývá možným řešením, které za jistých podmínek umožňuje bezpečně sdílet společnou session. Důvod proč se tímto problémem zabývat je jednoduchý - SSL šifrování je výpočetně nákladná věc (viz. např. Performance...

Teorie a praxe v J2EE světě

Připadá vám J2EE stack jako složitá technologie? Mě tedy ano a vždycky to vysvětluji tím, že se jedná o technologii, která byla navržena k řešení opravdu enterprise výzev jako scalability, fail over apod. Prostě ty EJB mají svůj důvod, stejně jako distribuované transakce a nebo RMI. Každá aplikace přece potřebuje nějak řídit transakce, mít nějaký...

Není AJAX jako AJAX - GWT vs. DWR

Článek popisuje závěry a postřehy ze studia dvou AJAXových knihoven. GWT - Google Web Toolkit a DWR - Direct Web Remoting.

iBatis SqlMaps - tak trochu opomíjený ORM

Nedá mi to, abych nenapsal něco o frameworku iBatis. Někteří jej možná znáte, někteří jste možná o něm už slyšeli, ale dle trafficu na java.cz konferenci bych řekl, že jej většina z vás přehlíží. Zůstal nepovšimnut i v našem krají protřelém CZ podcastu číslo 8. Myslím, že je to škoda a proto jsem se rozhodl o malou osvětovou, nebo-li, jak by řekl...

Komety přilétají

Pokud jste žili v domnění, že AJAX je technologickým Mount Everestem současných možností prohlížečů, pak vězte, že vývoj jde dál. Na tahu je technologie zvaná Comet (kometa) postavená na AJAXu a ždímajíc server do morku křemíku. Comet též nazývaný reverse AJAX a nebo server push nebude zřejmě tak revoluční jako AJAX, ale svoje místečko si určitě...

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ú...

Property Editory ve Spring Frameworku

Dnešní článek bych chtěl věnovat "property editorům":http://www.springframework.org/docs/reference/validation.html a zvláště jejich používání ve Spring Frameworku.

Spring web flow - framework pro management toku web aplikace

Dnes existuje spousta MVC frameworků, které vám dovedou zařídit skvělé (rozuměj flexibilní) routování. Světem webu dnes vládnou nice URL`s, přístupnost atd…V některých případech však požadujete něco zcela jiného. Například taková registrace uživatelů nebo odesílání objednávky. Takovéto procesy bývají rozděleny do několika kroků a bývá zcela...

EL Hack

Vymyslel jsem si takový hack na volání methody s parametrem pomocí Expression Language a zajímal by mě názor java comunity na tuto zaležitost.

Profesionální monitoring JAVA aplikací

Každá vetší aplikace (nejen J2EE), která nám generuje tzv. business, bude dřív nebo později potřebovat neustálý dozor nad jejím provozem - tzv. monitoring, který by nás, nejlépe předem, upozornil na problematické místa naší aplikace - např. že dochází JVM, že určitý SQl dotaz trvá příliš dlouho, atd. V tomto článku popíšu základní parametry pro...

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.

Začínáme s Webovými stránkami v Javě 2

V minulém díle jsme si ukázali, jak vytvořit jednoduchou stránku v JSP (tzv. špagetový kód). Nyní si ukážeme, jak vytvořit webovou stránku s použitím návrhového vzoru Model-View-Controller (MVC) pomocí JSF a Facelets.

FCKFaces

Součástí JSF implementace MyFaces je i balík rozšiřujících komponent Tomahawk. Ten obsahuje i komponentu pro wysiwyg editaci (<h:inputTextarea/>). Ta je celkem otřesná, pokud ji porovnáte třeba s FCKEditorem. Narazil jsem ovšem na FCKFaces – JSF plugin, který používá FCKEditor. Instalace je jednoduchá. Stáhnete jar, přidáte do classpath...

Základy deploymentu webových aplikací na Tomcatu

V tomto článku se pokusím shrnout základy deploymentu (nasazení) webových aplikací na server Tomcat. Tomcat jsem vybral pro jeho rozšířenost, nicméně mnoho informací zde uvedených je znovupoužitelných i na jiných serverech. Rád bych upozornil, že článek se nezaobírá instalací Tomcatu a taktéž předpokládá alespoň elementární znalost servletů a JSP.

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.

Web frameworky v Javě

Tento článek by se také mohl jmenovat po stopách MVC aneb nutné minimum, pokud nechcete udělat při vývoji webových aplikací v Jave chybu.

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.

Hibernate a jednosměrné one-to-many vztahy

Dnes nebudu psát nic světoborného. Jen bych uvedl na pravou míru chybu, které jsem se dopustil v minulém článku. Není pravda, že Hibernate neumí jednosměrné one-to-many vztahy bez použití join tabulky, naopak je to docela snadné.

Hibernate a paralelní kolekce

Malý experiment s optimlizací načítání kolekcí pomocí Hibernate.

Spring v desktopové aplikaci

V poslední době jsem se hned několikrát setkal s názorem, že Spring je ryze webový framework. Tento článek, který by se spíše mohl jmenovat "Seznámení se springem", by měl tuto mylnou teorii vyvrátit.

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...

Inversion of Control v rámci Spring - praktický tip

Při brouzdání diskuzemi na webu občas narazím na názor, že systém provázání objektů v aplikaci založené na rámci Spring prostřednictvím návrhového vzoru Inversion of Control je zbytečná práce navíc.

Google Web Toolkit

Máte rádi all-in-one řešení? A proč se ptám? Protože Google Web Toolkit je právě jedním z all-in-one řešení. Určitě jsou frameworky, které zvládají jednotlivé stavební kameny GWT lépe, ale GWT je unikátní právě ve smíchání všeho potřebného k tvorbě Rich Internet Applications na platformě Java.

Jak jsem udělal chybu aneb chyba ve Springu

Ano, i já, tvor neobyčejně dokonalý se mohu dopustit chyby. Chtěl bych o jedné z nich napsat, nebyla rozhodně první, ani poslední, byla ale dost zajímavá. Všechno začalo dost nevině, při práci na svém úžasném projektu m2-proxy jsem jedné třídě potřeboval předat seznam dvojic hodnot. Abych si zjednodušil konfiguraci přes Spring, přetížil jsem...

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ť.

JDBC 4.0 - příjemné novinky

Připravovaná Java 6.0 sebou kromě jiného přinese i JDBC 4.0. Na co se tedy můžeme těšit?

Splaskne AJAX bublina?

Sun i Microsoft, firmy stojící za platformami Java a .NET, se dnes předhánějí v rozšiřování podpory AJAXu pro své web frameworky, Google vydává vlastní web toolkit a z odborných medií se na nás neustále vali informace o tom jaký nový AJAX framework vzniknul, či kdo má jakou AJAX podporu. Vypadá to jako bublina, roste to jako bublina, splaskne to...

JNDI - zabezpečenie prístupu a riešenie častých problémov s JNDI

Niektorí poskytovatelia adresárových služieb, ako je LDAP, môžu vyžadovať od klienta prístupové meno a heslo pri snahe o pripojení a hľadaní objektov v rámci namespace. Spôsob, ako obvykle splniť požiadavky poskytovateľa, je nastaviť potrebné premenné prostredia pre InitialContext. V tomto článku sa pozrieme, ako na to. V závere si vysvetlíme...

Spring v ofenzívě

Už jste slyšeli o RCP (Rich Client Platform)? Rich Client Platfrom by měla představovat plnohodnotný podvozek, na kterém by měla jít velice snadno vybudovat desktopová aplikace. Pokud jste o RCP slyšeli, pak vám určitě neuniklo, že se hlavní souboj doposud odehrával mezi Eclipse RCP (založené na GUI technologii SWT) a NetBeans RCP (založené na GUI...

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.

JDBC memory leak za 5,50-

Je libo dát si malý, únik paměti, který ve výsledku povede k pádu aplikace na java.lang.OutOfMemory? Budeme potřebovat tyto ingredience: kód pracující s databází přes JDBC, poolování databázových připojení a následující konstrukci...

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.

Návrhový vzor Template method a jeho aplikace v prostředí JDBC

Tento článek by mohl klidně nést podtitul Efektivní práce s databází v Jave: stop nadbytečnému kódu. Hodně často se diskutuje práce s JDBC, což je javovské rozhraní pro práci s databází. Bohužel už méně často se diskutuje o tom jak psát JDBC kód efektivně. V tomto článku si ukážeme jak na to za pomoci návrhového vzoru Template method.

VyVoleným pro test použitelnosti

Včera jsem si poprvé vyzkoušel jednak Java Studio Creator 2 a druhak jaké je to být pokusným uživatelem při testu použitelnosti pro tento násroj.

...a kam dál kráčet

Mohl bych prosim znat Vas nazor(p. Pichliku) nebo ostatnich, co bych teto dobe a v me situaci(znalost J2SE) po nauceni jsp stranek se mel ucit dal. Je mi jasne, ze nejlepsi je umet vse a zalezi na konkretnim ukolu a zvoleni vhodne technologie, ale presto musi byt technologie "lepsi" a "horsi". Neberte to prosim nekdo jako neco k nastartovani...

Minitutoriál: Eclipse, Tomcat a vývoj JSP a Servletu

Hodně často v diskusních skupinách javy zaznívá otázka, jak vyvíjet JSP a Servlety v IDE Eclipse. IDE Eclipse nemá přímou vestavěnou podporu pro JSP, Servlety nebo nasazení (deploying) do prostředí servletového kontejneru. K tomuto účelu je zapotřebí použít některý z plug-inu. Protože jsem se rozhodl napsat tento příspěvek pro začínající...

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...

Databázové scénáře pro integrační a jednotkové (unit) testy

Pokud máte aplikaci, která je výhradně závislá na databázi, a chcete psát jednotkové a nebo integrační testy, pak jste postaveni před dva problémy. Za prvé, nastavení testovacích dat alias uvedení databáze do výchozího stavu a za druhé možnost kontroly dat v databázi v rámci testu. Na základě těchto požadavků, jsem připravil jednoduchý framework...

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ť.

Spring Framework - představení J2EE lightweight kontejneru

spring logo
Kdybychom žili v ideálním programátorském světě, nebylo by nástrojů, jako je Spring Framework, zapotřebí. Protože v takovém světě nežijeme a jsme tedy postaveni před reálné problémy, můžeme s povděkem kvitovat služby, které nám framework Spring poskytuje. Spring je spojen s přívlastkem J2EE lightweight kontejner. Ona dvě magická E možná vyvolají u...

AJAX útočí

Vlastně nic převratného — vezme se dohromady běžný cross-site scripting, a pomocí něj se do stránky vloží kód, který pro se samoreprodukuje nenápadným zasíláním AJAXových requestů.

JNDI - využitie environment properties a metóda lookup()

V tomto článku sa detailne pozrieme na to, akým spôsobom môžeme získať informácie obsiahnuté v premenných prostredia. Dozvieme sa, prostredníctvom akého objektu sú tieto informácie dostupné, a v druhej časti sa pozrieme bližšie na možnosti a využitie metódy lookup.

Využití continuations k tvorbě webových aplikací

Continuation je vypůjčený výraz z jazyku Scheme a označuje se pomocí něj funkce nebo objekt, který reprezentuje aktuální stav (stacktrace a hodnoty proměnných) programu během jeho vykonávání. Continuation sám o sobě může posloužit k realizaci programového přerušení a následného pokračování. Díky tomu je možné velice jednoduše naprogramovat...

JBoss a Microsoft oznamují spolupráci

Jakkoli toto oznámení může znít šokantně, vysvětlení (které koneckonců JBoss poskytuje na uvedené stránce) zní logicky: přestože obě firmy jsou spojeny s konkurenčními platformami .NET a Java, nelze přehlédnout rozsáhlou komunitu uživatelů provozujících JBoss na Windowsech — a právě podpora této komunity je důvodem vzniku této aliance.

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é...

Java – znakové kódování

Jedno z nejčastěji tázaných témat, v diskusních skupinách věnovaných Jave, se točí kolem kódování znaků. Nejčastěji se to týká kódování při čtení/zápisu servletu (JSP), databáze a souborů. Obecně to může generalizovat na operace probíhající na hranici mezi JVM a okolním světem, kde dochází převodu bytové reprezentace na znakovou reprezentaci a...

Co jsem nestihl přečíst

Následuje seznam odkazů na minimálně či nijak komentované články převážně na TheServerSide.com, které mě v RSS čtečce letmým pohledem zaujaly po návratu z dovolené a o nichž doufám, že se k nim díku tomuto blogspotu v dohledné době vrátím.

Odhlášení uživatele při použití Basic Authentication

Připadá Vám logické, že pokud se někam přihlásíte, měly byste mít možnost se i odhlásit? Pokud použijete pro autentizaci tzv. Basic Authentication viz RFC 2617 představuje odhlášení takřka nepřekonatelný problém.

View vrstva na vrcholu: Java Server Faces vs Tapestry

Vývoj webových aplikací resp. vrcholku v podobě view vrstvy prošel notným vývojem od prvních spaghetti code aplikací z konce let devadesátých, přes MVC až k současnému hitu, který tvoří událostně řízené komponenty. S nadsázkou můžeme říci, že "dobu temna" na poli Javy pomohl svým způsobem překonat ASP. NET, který inspiroval zrod standardu v podobě...

Knihovna tagů pro generování WML kódu v prostředí JSF

Cílem mojí práce bylo tvořit knihovnu tagů pro generování WML stránek. To obnáší vytvoření renderovacích tříd a jejich napojení na standardní JSF komponenty. Mé rozhodnutí vytvořit RenderKit bylo podpořeno tím, že tato technologie je pro generování výstupů pro různé klienty přímo navržena. Dalším důvodem bylo, že RenderKit pro WML nebyl k...

Autentizační token jako součást URL

Docela složitě jsem vybíral název pro tenhle post a tak bude lepší, když přejdu přímo k problému, který si osvětlíme na příkladu. Dejme tomu, že máme komentářový systém a chceme, aby měl každý pisatel možnost svůj komentář zpětně změnit. Protože nechceme, aby si pisatel musel přihlašovat resp. někde registrovat, jsme postaveni před problém jak...

FastRPC - binární XML-RPC

Vývojáři společnosti Seznam.cz rozšířili open source rodinu o další projekt. FastRPC je XML-RPC, které používá pro přenos data serializovaná do binární podoby. Tento způsob "úspory" zdá se mi poněkud diskutabilní. Troufám si tvrdit, že XML-RPC je sám o sobě lightweight protokol, který žádné problémy s rychlostí nezpůsobuje.

JNDI - Context a InitialContext objekty

V predchádzajúcich článkoch sme niekoľkokrát spomenuli výraz "previazanie" (binding). Napriek tomu, že v JNDI API sa nachádza aj trieda s rovnakým názvom, oveľa častejšie sa budete stretávať s niečím, čo označujeme ako kontext (context). Kontext hrá hlavnú úlohu v celom JNDI. Je používaný na previazanie, rozviazanie a vyhľadávanie objektov, ktoré...

JTDS driver – pozor na nastavení pro MSSQL 2000

JTDS driver je v podstatě skoro jediný nekomerční driver použitelný pro MSSQL 7.0 a 2000. Právě jeho původní určení pro MSSQL 7.0 pravděpodobně zanechalo pozůstatek v defaultním nastavení driveru, které může na MSSQL 2000 způsobit vážné výkonnostní problémy. Celá blamáž se točí kolem převodu textových parametrů na UNICODE. Objasnění problému a...

Sun Microsystems uvolňuje klíčové podnikové Java technologie jako open source

Společnost Sun Microsystems, Inc. (NASDAQ: SUNW), tvůrce a hlavní propagátor technologie Java, uvolnila klíčové podnikové Java technologie jako open source a udělala tak další krok ve snaze podpořit dlouhodobý růst Javy a participaci komunity vývojářů. Sun na desátém ročníku vývojářské konference JavaOne dále potvrdil svůj závazek vůči komunitě...

JNDI - environment properties (možnosti nastavenia)

Existujú tri základné spôsoby, ako je možné nastaviť environment properties, respektíve premenné prostredia pri JNDI. Prvý spôsob predpokladá použitie špeciálneho konfiguračného objektu, ktorý predáme konštruktoru objektu triedy InitialContext. Druhý spôsob využíva zadanie aplikačných parametrov pri štarte aplikácie využívajúcej JNDI. Tretí spôsob...

Microsoft uvolnil zbrusu nový JDBC driver

Když jsem dnes zpětně koukal na TheServerSide a hledal zprávičky, které mě zaujaly, narazil jsem na novou zprávu Microsoft releases a new JDBC Driver for SQL Server. Pokud si myslíte, že se Microsoft chytil za nos a usoudil, že není úplně košer mít špatný JDBC driver k vlastnímu produktu, pak se mýlíte.

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.

JNDI - environment properties (základné informácie)

Predtým, ako klient bude môcť využiť služby ponúkané JNDI, musí túto službu vyhľadať na sieti a získať spojenie. Znie to ako paradox, pretože klient potrebuje JNDI, aby mohol vyhľadať požadované služby, ale JNDI samotné je v podstate tiež vzdialená služba. Takže ako môže klient použiť menné služby, ak ich predtým musí vyhľadať? Odpoveďou je...

Novinky z Google Code

řed časem jsem se zmínil o poměrně čerstvě zprovozněné aktivitě Googlu nazvané Google Code. Nedávno přibyly další dva projekty (oba tradičně označeny verzí 0.1), z nichž paradoxně zajímavější mi přijde ten Javascriptový než Javový.

Portal feature matrix

Při hledání feature matrixu (tabulka, ve které jsou porovnány jednotlivé vlastnosti) jsem narazil na server CMS Matrix. Server nabízí možnost porovnání jakéhokoliv z 368 registrovaných portálu v několika desítkách kategorií.

Vyšel JBoss Portal 2.0

Pro zájemce o čerstvé maso v oblasti portálových řešení velmi stručně — Vyšel JBoss Portal 2.0. Prošel TCK na Portlet API, na podzim se mimo jiné očekává i CMS kompatibilní s Java Content Repository.

JSR 170 definitivně schváleno

... a někdy během schvalování se přejmenovalo z "Java Content Repository" na "Content Repository for Java technology API".

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ť...

Spring framework V - aplikační kontext, IoC

V předchozím díle jsme si s pomocí Springu vytvořili maximálně jednoduchou webovou aplikaci a dnes bychom měli začít s jejím rozborem. Řekneme si, co je to aplikační kontext a jak je vytvořen na základě konfiguračního souboru ve formátu XML. Zmíníme se také o IoC a jeho alternativách.

J2EE vs .NET

Tak zní název článku Duncana Millse na JDJ. Duncan v podstatě tvrdí, že výhodou .NETu oproti J2EE je fakt, že Microsoft má všechno pod jednou střechou. .NET framework obsahuje řešení různých aspektů návrhu enterprise aplikací na jedno místě. J2EE na druhou stranu působí poněkud roztříštěně a na scéně je množství rozličných API řešících konkrétní...

Spring framework IV - download, verze, první aplikace

V dnešním díle konečně hodíme za hlavu teorii a přejdeme k psaní kódu. Řekneme si odkud Spring stáhnout, jakou verzi použít a pak bleskově implementujeme kompletní funkční Spring-based webovou aplikaci.

JNDI - predstavenie architektúry

Cieľom JNDI je priniesť použiteľné rozhranie na prácu s rôznymi mennými a adresárovými službami. Tieto články o Java Naming and Directory Interface (JNDI) si stanovujú za cieľ predovšetkým priniesť doplnkové informácie k Enterprise JavaBeans 2.x, pretože architektúra JNDI je veľmi úzko prepojená nielen s technológiou EJB, ale aj s celým J2EE.

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...

Spring a jeho JPetStore

S rozhodnutím, že se konečně ponořím do jarního pracovního rámečku (čti: Spring framework), jsem si stáhl jeho distribuci a pokusil se rozchodit jeho vzorovou aplikaci "JPetStore". Zdálo se, že VÝJIMEČNĚ vše poběží bez problému, dokud jsem nenarazil, na tuto výjimku: java.sql.SQLException: Table not found: CATEGORY in statement ...

Nový web Springu

Domovské stránky rámce Spring včera změnily vizáž. Původně byly založeny jen na statických html stránkách, ale velikost a význam projektu vzrostly natolik, že bylo nutné přejít na dynamické generování obsahu. Web Springu teď tedy jede na redakčním systému Drupal.

Spring framework III - souvislosti s J2EE a EJB

Kdo může psát o frameworku Spring fundovaněji než jeho autor Rod Johnson. Dnešní díl se tedy bude věnovat myšlenkám, které stály u zrodu Springu a které Rod prezentoval knižně. Chcete-li poznat skutečně podrobně důvody proč používat k vývoji J2EE aplikací Spring framework, měli byste si přečíst Johnsonovu knihu Expert one-on-one J2EE Design and...

Spring produktivnější než .NET

Zajímavá soutěž s ještě zajímavějšími výsledky se nedávno konala v Holandsku. Své síly v produktivitě vývoje změřila vývojová prostředí pro enterprise aplikace. Zúčastnila se například specializovaná 4GL RAD prostředí, "čistý" .NET, Visual Studio .NET, Java s využitím klasických J2EE technologií a také Java s frameworkem Spring.

Sitemesh II. - Principy a nastavení

V tomto díle našeho seriálu se seznámíme se Sitemesh flow, tedy s principem, na jakém Sitemesh funguje. Ukážeme si, jak Sitemesh nasadit do aplikace, jeho konfiguraci a vysvětlíme si postup výběru jednotlivých dekorátorů. Nic více, nic méně.

Spring framework II - účel, zacílení, výhody

V dnešním díle se mrkneme na účel a zacílení Springu, zmíníme se o často využívané možnosti nahradit Springem EJB a nakonec vypíchneme některé výhody, které sebou použití Springu nese.

Geronimo, Castor JDO a Spring

Na TheServerSide.COM vyšel rozhovor s Brucem Snyderem, jedním z hlavních vývojářů projektu Castor JDO a zejména aplikačního serveru Geronimo. Zajímavé jsou souvislosti s frameworkem Spring.

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.

SItemesh I. - Motivace

Motivační článek, který čtenáře uvede do problematiky dekorovacího a integračního javového frameworku Sitemesh

Sjednocení JSTL a Java Server Faces na obzoru

Na světě jsou ve stadiu "public review draft" návrhy specifikací JSF 1.2 a JSP 2.1.

Spring framework I - základní pojmy

Aplikační rámec Spring je současným hitem vývoje J2EE aplikací. Podle některých odborníků na javové technologie je Spring spolu s dalšími rozšířenými open-source nástroji hnacím motorem J2EE v souboji s konkurenčními prostředími, zejména .NETem. Popularita Springu den po dni roste, a tak i my dneškem otevíráme sérii článků, která se mu bude...

JDO - projekce do relační databáze

Dosud jsme při výkladu JDO zůstávali převážně na objektové úrovni a zcela výjimečně jsme se dotkli toho, jak se persistentní objekty ve skutečnosti ukládají do relační databáze. I když při běžném používání lze tuto práci ponechat na implementaci JDO, z hlediska případných optimalizací a také pro případ, že bychom potřebovali přímo přistupovat k...

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.

JBoss + Xdoclet + Unknown primary key + CMR relation = ?

Za otazníkem v nadpisu se skrývá nejspíše něco jako "spousta zábavy". Věc se má následovně: EJB specifikace nám umožňuje ponechat na kontejneru vytváření primárních klíčů, a říká tomu "Unknown primary key" (bod 10.8.3). Co když se rozhodneme něco takového zkusit v praxi (s aplikačním serverem JBoss 4.0.1)?

Souběžná modifikace dat ve webových aplikacích

Rád bych vám pospal jeden ignorovaný problém, kterému jsou vystaveny všechny webové aplikace, které umožňují editaci dat a může s nimi pracovat více než jeden uživatel. Česky by se dal problém přeložit jako Souběžná modifikace dat, v anglicky psaných meteriálech jej najdete pod názvem concurrency data modification. Pokud tento problém opomeneme...

JDO - dědičnost tříd a pokročilé dotazy

Dědičnost tříd je jednou ze základních vlastností většiny objektově orientovaných jazyků, a proto není důvod ji nevyužít i při návrhu objektové databáze. Podívejme se tedy na to, jak se JDO dokáže vypořádat s dědičností tříd persistentních objektů. Dále se podrobněji zaměříme na dotazování pomocí JDOQL a ukážeme si některé pokročilé možnosti...

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...

SUN Java Studio Creator

SUN Java™ Studio Creator (JSC) je dvojcestný RAD nástroj na tvorbu JSP-based aplikácií s využitím technológií JavaServer Faces (JSF) a JavaBeans. V tomto článku sa pokúsim ukázať vám jeho možnosti, zhodnotiť jeho kladné a prípadne aj záporné stránky.

O Commons Chain

Kdo sledujete vývoj frameworku Struts v řadě 1.3, jistě tušíte, že hlavní změnou je redesign hlavní třídy RequestProcessor (význam zřejmý). Dosavadní implementace byla realizovaná jako "Template Method", tedy jedna třída, jejíž klíčová veřejná metoda se sestává z volání překrytelných chráněných metod. Nevýhody tohoto přístupu se začnou ukazovat v...

JDO - vztahy mezi objekty

Podkladem pro návrh struktury objektové databáze bývá obvykle diagram tříd, který popisuje jednotlivé třídy v aplikační doméně, jejich vlastnosti a vzájemné vztahy. Dosud jsme se při práci s JDO zaměřovali na jednotlivé třídy, v tomto článku se podíváme blíže na implementaci vztahů mezi třídami.

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...

JDO - datové typy a kolekce

Jedním z problémů, který je nutno řešit při ukládání javovských objektů do jakékoli databáze, je mapování datových typů. Java disponuje množinou jednak primitivních datových typů a jednak tříd definovaných v Java API, databázové systémy oproti tomu používají své vlastní datové typy, které se navíc u různých systémů mohou mírně lišit. Zajistit...

Hibernate 3.0 RC1

Tadá troubí do světa renomované javovské servery a Gavin King oznámil Hibernate 3.0 released!

Java web services

Ročníková práce se zabývá technologiemi webových služeb a JavaServer Faces. V první kapitole jsou představeny prostředky pro práci s XML a s webovými službami. Druhá kapitola ukazuje použití webových služeb z hlediska poskytovatele a klienta. Kapitola třetí je věnována demonstračnímu projektu. Ten se skládá z webové služby běžící na serveru a...

ORM pomocí iBatis SQLMaps

Tématikou ORM (Object Relational Mapping) jsem se na Dagblogu již zabýval ve spotu ORM letem světem. Ten spot je datován do doby, kdy jsme s ORM hodně experimentovali a hledali jsme nejvhodnější nástroj, vítězem se celkem oprávněně stal Hibernate. Při přechodu z klasického SQL na mezivrstvu v podobě ORM jsme narazili hned na několik problémů.

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...

JDO - identita objektů a dotazy nad databází

Každý persistentní objekt v objektové databázi má svoji vlastní identitu, je tedy jednoznačně odlišitelný od libovolného jiného objektu nezávisle na hodnotách svých vlastností. Podíváme se, jak lze přidělování identity objektů řídit a jakými způsoby lze k objektům uloženým v databázi přistupovat.

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...

Struts a Shale

Před časem jsem na Jabloku zmínil eleborát Craiga McClanahana (hlavního vývojáře Struts) nazvaný Shale. Nyní se Shale stává oficiálním podprojektem Struts.

JDO - práce s persistentními objekty

Narozdíl od běžných Javovských objektů, které existují v paměti a přetrvávají pouze po dobu běhu aplikace, objekty persistentní jsou navíc uloženy v úložišti objektů, které je spravováno implementací JDO. Je tak nutno řešit problematiku synchronizace persistentních objektů, se kterými se pracuje v aplikaci, s úložištěm objektů. JDO proto zavádí...

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...

JDO - Java Data Objects

Při tvorbě aplikací, které pracují s většími objemy dat, vždy dříve či později narazíme na problém, jakým způsobem a kam data ukládat. Standardem pro ukládání dat jsou v dnešní době relační databáze, které daný úkol plní velmi efektivně, přičemž můžeme volit z široké nabídky volně šířených i komerčních implementací. Programujeme-li v Javě, máme...

JDO - různé implementace a jejich použití

Předtím, než se ponoříme hlouběji do samotného rozhraní JDO, musíme si objasnit, jak je to s vlastní implementací JDO a co všechno budeme potřebovat k tomu, abychom mohli vytvořit aplikaci v Javě založenou na JDO. Seznámíme se s některými dostupnými implementacemi a podíváme se, jak nakonfigurovat JDO implementaci, aby spolupracovala s naším...

Su Java Enterprise System

Sun logo

Dagblog

Blog nejen pro kodery od Romana 'Dagi' Pichlika.

 
strana 1/1celkem 401 položek