Fejlesztés kategória bejegyzései
Érdekességek, leírások, programozás.
Internet marketing
Csinálj egy oldalt egy termékről. Hirdess nyereményjátékot, Kösd regisztrációhoz a részvételt. A regisztráció végén tedd kötelezővé a termék bemutatását. Csak a pozitív hozzászólásokat engedd megjelenni az oldalon.
És kész is a pozitív reklám:)
Webservice készítés Jboss AS 5.1 JBossWS és JAX-WS segítségével
Már órák óta ülök azon, hogy hogy lehet ezt megvalósítani, mert állandóan valamilyen hibát kapok. Legutóbb a következő volt:
setProperty must be overridden by all subclasses of SOAPMessage
Googolai jósda végül megkönyörült rajtam és elvezetett egy JIRA hibajegyhez (https://issues.jboss.org/browse/JBWS-1439). Az utolsó hozzászólásban van a megoldás:
For JBoss 5.1 I needed to add the following jars from [jboss_home]/client (jaxb-api.jar was not available) to [jboss_home]/lib/endorsed:
jbossws-native-jaxrpc.jar
jbossws-native-jaxws.jar
jbossws-native-jaxws-ext.jar
jbossws-native-saaj.jar
De most komolyan, miért kell így hakkolni az alkalmazásszervert, hogy egy alapvető feature-t előcsaljunk?
Update:
Ez most nagyon fájt! Az van, hogy az alkalmazásszerverből 2 verzió van, az egyiknek a nevében a jdk6 szó is szerepel. Na nekem az kellett volna, de nem azt töltöttem le. Ha jól értettem a fórumokat, a jax-ws implementáció más a különböző java-verziókban, emiatt van a zűrzavar. Most egyből ment a webservice is.
SW dev. ma
Csak én látom úgy hogy az utóbbi évek összes szoftverfejlesztését a következő mondattal le lehet fedni?
Level of Indirection solves every Problem.
Application stack
Az informatika minden egyes területének megvan a maga szépsége. Enterprise környezetben például igen érdekes, hogy hogyan is tud nagyszámú technológia együttműködni. De azért ember legyen a talpán, aki mindezt átlátja! Megmutatom, mire is gondolok.
Az előbb egy Flex alapú framework leírására bukkantam a DZone-on. Most nézzétek meg: minden egyes doboz egy külön technológia. Divatos és south parkos fordulattal élve: Niceee….

Hibernate + UTF-8
Jó dolog a hello world, de amikor éles alkalmazást kell írni, akkor azért nagy szívás, ha a weboldalon egy ‘ű’ betű helyett csak egy kérdőjel jelenik meg.
Jelenleg Seam framework-kel dolgozom, ami Hibernate3-at és MySql5.1 pöcögtet. MySql-ben beállítotam a használt betűkészletet ‘utf8_hungarian_ci’-re. A karakterek megfelelő kezeléséhez a JDBC connection stringet kellett a következőképpen kiegészíteni.
jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=UTF-8
A ‘&’ karakter escape karakterrel való helyettesítése fontos!
Informatikai átlagfizetések 2010
Ennyit keresünk Magyarországon. Az árak Jó Magyar Forintban (JMF) értendőek:
| Adatrögzítő | 1 300 000 |
| Informatikai igazgató | 13 100 000 |
| Rendszergazda – szenior | 6 800 000 |
| Rendszergazda | 4 600 000 |
| Rendszergazda – junior | 3 600 000 |
| Rendszerelemző – szenior | 7 500 000 |
| Hálózati mendzser | 6 900 000 |
| Szoftver mérnök – szenior | 10 200 000 |
| Szoftver mérnök | 6 300 000 |
| IT specialista | 4 600 000 |
| Programozó szenior | 7 100 000 |
| Programozó | 5 500 000 |
| Programozó – junior | 3 700 000 |
| Projekt vezető | 7 800 000 |
Remote debugging
Eclipse alatt igen könnyű az alkalmazásokat debugolni. Elindítjuk a programot debug módban, beállítunk a fejlesztőkörnyezetben egy töréspontot, a program pedig megáll ha odaér. De mi van akkor, ha a programunkat nem mi, hanem egy külön (tipikusan J2EE) alkalmazásszerver futtatja? A megoldás: remote debugging.
A következő pontokban tutorial jelleggel mutatom be, hogyan is lehet ezt használni.
Felhasznált eszközök
Jboss AS 5.1, Eclipse 3.6.
1. lépés: indítási paraméterek
A parancssorba a szokásos run.[bat|sh] parancs után adjuk meg a következő parancsot:
-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n
Ezzel instruáljuk a szervert arra, hogy a 8787-es porton keresztül lehessen megállítani a programot és lekérdezni a program futásának adatait
Megjegyzés JBoss AS 5.1 esetén a /bin/run.conf állományban a JAVA_OPTS="$JAVA_OPTS -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n" sort kikommentezve minden egyes indítás után engedélyezett lesz ez a feature. Windows alatt a változtatások érvényesítéséhez el kell indítani a run.conf.bat állományt.
2. lépés: Eclipse beállítása
Adjunk hozzá egy új debug futtatási konfigurációt a projektünkhöz:

3. lépés: Alkalmazásszerver elindítása
A szokásos módon a /bin/run.sh indításával.
4. lépés: debug mód ellenőrzése
Váltsunk debug perspektívára, és indítsuk el a 2. lépésben elkészített konfigurációt. Ha minden jól van beállítva, akkor az alkalmazásszerver által futó szálak megjelennek a debug nézetben.

5. lépés: debug használata
Innentől kezdve a projektbe berakott brakepointok hatására az alkalmazásszerveren futó kód ugyanúgy megáll, mintha egy egyszerű java-s alkalmazást futtatnánk az Eclipse-n belül.
Memory Leak
Adódott, hogy egy tesztelő környezetet kellett implementálnom, ami többek között a terhelés alatti memóriahasználatot is méri. Amikor azonban többször egymás után lefuttattam a teszteket, egyre több és több memóriát fogyasztott a drága.
Drága Eclipse megint megmentett, mivel létezik hozzá egy Eclipse Memory Analyzer nevű eszköz. Ez nemcsak egy Java Dump vizualizációt adott, de meg is tippelte, hogy mely objektumok okoznak egyre duzzadó memóriát.
Egyébként a megfejtés az volt, hogy a mintaadatok betöltéséért felelős erőforrásobjektum sosem lett eleresztve, csak újra és újra példányosítva. A referenciát kinullázva és dispose() metódust hívval a probléma megoldódot.
Megyek is aludni:)
