2006-05-28

A JSP lenyom

Pár hónapja elhatároztam hogy bepótolom az elmaradásomat és némileg megtanulok normális klasszikus webalkalmazásokat írni. Nem rögtön a legmodernebb eszközökkel akartam kezdeni, hanem folyamatosan feljönni a szervletektől a jsp-n keresztül az Ajax-os eszközökig. Állítólag MVC keretrendszert is érdemes már használni. a Spring MVC-t választottam, mert a múltkor belenéztem a Struts-ba és nem volt szimpi első látásra (fölöslegesnek látszó mappeléseket és öröklődéseket kellett csinálni benne szerintem) és egyébként is a Spring-gel ismerkedtem mostanában.

Szóval: a szervletek és a sima régi JSP-k hamar megvoltak a hagyományos módszerrel. Mondhatni kiráztam a kisujjamból. Még akkor is lelkes voltam amikor az első Spring MVC handlermappingokat és controllereket konfiguráltam az xml-ben. Úgy gondoltam hogy ez tök jó lesz, cserélhető a megjelenítési réteg, moduláris meg minden. Amikor viszont egyre több jsp oldalam lett és közepesen bonyolult funkciókat akartam beépíteni, menthetetlenül kezdett kaotikussá válni az egész. Jávában, HTML-ben otthon kell lenni, ismerni kell a Spring (vagy akármelyik másik) MVC keretrendszer lelkivilágát és még a JSP-hez is érteni kell, beleértve az Expression Language-t -ami egy külön kis világ- és még a JSTL-t sem árt ha keni-vágja az ember. Nem beszéltem még az egyéb tag librarykról és még egy sor javascript-et sem írtam le. Nem mondom hogy MVC framework vagy EL, JSTL nélkül könnyebb programozni, de túl sokat nem segítenek. Fejleszteni egyébként is marha nehéz, mert csomó hiba futási időben derül ki és sokszor nem a hiba íródik ki közvetlenül, hanem valamelyik folyománya. És még hol vagyok az Ajaxtól, jól kinéző alkalmazásoktól? Ez egy sima model 2-es webalkalmazás lenne. Lehet hogy ki kellene próbálni más eszközöket.
Ehhez képest még a .net-es aspx megoldás is elég versenyképes a mögöttes kód rendszerével.

2006-05-03

JSTL meccs

Javalistán volt ez a probléma, de nekem is előjött:

"Ha egy JSP oldalba beleteszem a következõ sort:
nyitókacsacsőr%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %zárókacsacsőr

Akkor miért kapom a következõ üzenetet?
org.apache.jasper.JasperException: This absolute uri
(http://java.sun.com/jsp/jstl/core) cannot be resolved in either web.xml
or the jar files deployed with this application
A jstl.jar és a standard.jar fájlok bent vannak a WEB-INF/lib könyvtárban.

5.x-es Tomcat alatt működik, csak 4.x-es alatt nem."

Ezeket a linkeket ajánlották hozzá:
http://archive.midrange.com/web400/200404/msg00031.html
http://wiki.java.net/bin/view/People/DeployingCreatorApps -> Container

Mindenfélét találgattak, volt bennük igazság is, de megoldás végül nem született. Legalábbis nem írta a probléma felvetője hogy megtalálta a megoldást.

Az én próbálkozásaim, 5 hónappal a thread után:

Belenézve a standard.jar c.tld-jébe az uri http://java.sun.com/jstl/core, tehát a jsp-be is ez kell hogy kerüljön. Mellesleg JBoss 3.2.6-om van Apache Tomcat 5.0.28-cal. Így viszont NoSuchMethodError-t vág az arcomba úgyhogy verzióprobléma ez valószínűleg. Ez van még a tld-ben:
tlib version 1.0
jsp version 1.2
És bele van írva hogy JSTL 1.0 core library.

Meg kellene próbálni az 1.1-es JSTL-eket.
Letöltöttem az apache-ról az 1.1-et és átmásoltam a szükséges helyekre, de most is NoSuchMethodError jön. A JSTL-lel szállított standard-examples.war is elhasal ugyanúgy. Biztos 5-ös Tomcat van a JBoss-ban? (Igen.) Még a JBoss Management Console is ilyeneket dobál. Azt hiszem jobb lesz felhúznom egy új JBoss-t. Megtörtént (10 másodperc alatt). A téma most működik, beleértve a JBoss Management Console-t és a JSTL 1.1 példáit is.

Tehát végül nem tudom mi volt a probléma, de az biztos hogy a JBoss amin próbáltam már egy fél éve fenn van a gépemen és alaposan meg volt gyepálva. Ki tudja már milyen jar-okat cserélgettem ki, vagy töröltem benne.

2006-04-09

Javaposse

A Javaposse-n Jávával kapcsolatos Podcast-ok vannak, amiket néhány Sun-os, Google-s és Apple-os srác csinál, akik humorosak egyébként, tehát nem ilyen karótnyelt majmokra vagy marketinghuszárokra kell gondolni, viszont igencsak tájékozottak és vágják a dolgokat.

Néha interjú híres emberrel mint pl. Bruce Eckel vagy Gavin King, néha csak dumálás a heti jávás hírekről kb. fél órás terjedelemben. Az utóbbi időben beficcentek egy órás dumálások is. Sajnos előre nem lehet tudni, hogy amit letöltök (mp3) az pontosan milyen hosszú lesz, úgyhogy néha az utazás vagy futóedzés nem passzol pontosan a felvételek meghallgatásához. Pedig ha tudnám hány perces a felvétel már elindítanám bemelegítés közben vagy ilyesmi. Valami alkalmazkodásféle. Lehet hogy írok is nekik egy levelet, hogy tüntessék fel a podcast-ok hosszát.

Az oldalon nem sok minden van, csak néhány link az aktuálisan elhangzó podcast témáiról.

2006-03-06

Idea

Hallottam erről az idea nevű fejlesztőeszközről az egyik ismerősömtől és ettől függetlenül a JavaPosse -ról is letöltöttem egy hallgatható cikket ami éppen erről szólt.

Azt mondják hogy marhajó fejlesztőeszköz, mert nem az van a központban hogy moduláris, univerzális meg mittudomén milyen legyen, hanem hogy jól lehessen benne jávában fejleszteni és kész. Állítólag jó a refaktoringja, ennyit tudok róla biztosan mondani. 100 dollárba kerül (vagy százezer forint?), 30 napos a próbaverziója és Prágában fejlesztik -mondjuk ez a legjobb pont. Állítólag a Netbeans-t is Prágában fejlesztik (véletlen egybeesés) de lehet hogy valamit félreértettem.

Majd lehet hogy kipróbálom.

BEA Weblogic kipróba

Meg kellett néznem ezt a BEA Weblogic java appszervert.

"A www.bea.com -ról regisztráció után letöltheto a Weblogic 9.1-es többféle oprendszerre, köztük xp-re is (356.4mega).
Standard install, a Mercury profiling tools-ot nem installáltam. Így 533mega lett a könyvtárja, még saját JDK-t is felhúzott. A doksija eléggé bőbeszédű. Az a baj hogy nem nagyon választja szét az advanced és a kezdő dolgokat, folyamatosan mellébeszél, így nem tudom hogy mivel kell kezdeni. Nem tudom mik tartoznak az alapvető működéshez.

Standalone Server Domain kell a fejlesztéshez és kipróbáláshoz, amikor az admin szerver ugyanaz mint az applikációt futtató szerver.
A domain konfig fájlot nem szabad módosítani kézzel.
A domain autodeploy könyvtárába lehet pottyantani az ear-t ami magától deployolódik, ha a szerver development módban fut. (Alapból így fut.)

Start menü / BEA Products / Examples / WebLogic Server / Start Examples Server -rel lehet elindítani. Megnyit egy browser ablakot is infókkal miután elindult a szerver. A webes admin konzolra a weblogic/weblogic-cal lehet belépni.

Csináltam egy JDBC datasource-t az alkalmazásunknak, kérdés hogy működik-e. Valószínűleg nem. A teszt azt írja hogy success, akkor is ha elrontom az ip címet.

Próbáltam deployolni a sima ear-t, de nyilván nem sikerült. ClassNodtFoundException-nel elszállt. Az App-inf/lib -be kéne tenni a jar-okat?

Egymás mellé kéne tenni egy sample.ear-t és az myapp.ear-t, majd közös nevezőre hozni.
Az application.xml mellé kell egy weblogic-application.xml amiben fel vannak sorolva a datasource-k vagy mi.
Ennél bonyolultabb a dolog: A weblogic egy életérzés, de nem mondanám hogy tiszta és száraz. Amúgy biztos jó annak aki ért hozzá valahonnan.

Ahogy elindul, a böngészőben van egy "Learn About WebLogic Server" szekció, azon belül "Code Examples and Sample Applications". Ezt fogom most nézegetni, konkrétabban a Stateless Session Bean példát amihez kicsit körmönfont módon lehet hozzájutni.

Először le kell futtatni a domains/wl_server/setExamplesEnv.cmd-t egyébként elhasal az ant build, mert nem találja a wlcompile-t.
Ant build-del lehet buildelni.
A samples/server/examples/src/examples.properties-ben a wls.hostname-t átírva egy távoli gépre is lehet deployolni elvileg. Gyakorlatilag nem sikerül csak lokál gépre."

Eyeket írogattam róla, de cancellálódott a dolog.