- Bemutatkozott a Moto G32 4G
- Nothing Phone 2a - semmi nem drága
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- Poco X6 Pro - ötös alá
- Véroxigénszintet is mér a Honor Band 5
- Vodafone-ra áttért Digi Mobilosok
- Google szolgáltatás (GMS) Huawei telefonokra
- Alcor e-Pad - van még remény
- Ennyibe kerülnek a Huawei Pura modellek Európában
- Telekom mobilszolgáltatások
Hirdetés
-
Sokat fogyaszt az AI, egyre több az adatközpont, kell az atomenergia
it Az AI-t kiszolgáló adatközpontok olyan nagy energiaigénnyel bírnak, hogy egyre több atomenergiára van szükség.
-
Mindent megtudtunk az új Nokia 3210-ről
ma Részletes képek, specifikációk és euróban megadott ár is van a legendás modell újraélesztett verziójához.
-
AMD Radeon undervolt/overclock
lo Minden egy hideg, téli estén kezdődött, mikor rájöttem, hogy már kicsit kevés az RTX2060...
Új hozzászólás Aktív témák
-
DNReNTi
őstag
Hola,
Állásinterjúm lesz frontend pozícióra, egy cégnél ahol java-t használnak. A frontend része miatt nem is aggódok, de a java miatt igen. (Belső info: lesz szó java-ról az interjún). Na most van egy bő heten a randevúig, kérdés: hogyan rázzam gatyába magam java-ból addig? Ajánlott olvasmány, doksik, szoftverek, bármi?
Thx.but without you, my life is incomplete, my days are absolutely gray
-
Szmeby
tag
-
floatr
veterán
válasz Aethelstone #6854 üzenetére
Lehet h nem jött le, de szabályozott init-re gondoltam, nem AS módszer szerint.
Annyi felesleges kört futottunk már ezekkel a dolgokkal, és mindig csak magunkat szívattuk meg azzal, hogy még ezt is optimalizálni akartuk. Ha annyira teljesítménykritikus az alkalmazás, hogy nem bír kivárni egy connection-nel annyit, hogy a jsp legyártja az output-ot -- ugye lefordított classról beszélünk itt is, akár egy controller/service esetében -- akkor ott már nem ezen fog múlni a dolog, hanem már magán a perzisztencián és az adatbázison. A jsp nagyságrendileg hamarabb végez, mint amennyi ideig tart az adat előállítása.Ha most egymás után lerajzolgatod egy grafikonra, hogy mi mennyi ideig tartott: pl. entity lekérdezés, 2-3 külön init, beanmap/reflection alapú konverziók kontra entity, 1-2 init, rakat println meg még 1-2 init, akkor az esetek nagy részében azt fogod látni, hogy a grafikonon a 100%-ból elég kis szeletet harap ki a JSP, akárcsak a konverziók. Ismerek olyanokat, akik képesek nagyon lassú JSP-ket gyártani, de ez szerencsére a ritkábbik eset. Még a velocity/freemarker feldolgozás is lényegesen gyorsabb, mint az IP alapú adatműveletek.
-
floatr
veterán
válasz Aethelstone #6856 üzenetére
Szerintem az a gányolás, amikor összevissza kell konvertálgatni, hogy kiküszöböljük az egyik rétegben a másik rétegből adódó problémákat
-
jetarko
csendes tag
floatr: Az oldaladon nem lesznek már újabb mesék? Szívesen olvasnám, jó a stílus és a témák is érdekesek
-
floatr
veterán
válasz jetarko #6859 üzenetére
Sajnos a szabadidőm érdeklődés hiányában egy ideje elmaradt, így nem tudok írni. Ha most sikerülne megoldani, hogy háromfelé osztódjak, akkor sem lenne elég, és ráadásul össze is vesznék magammal úgy, hogy egy ideig nem beszélnénk egymással
(#6858) Aethelstone naja, volt hogy dBase-ben ment az "ügyviteli" alkalmazás. Abban az időben a réteg a nikotin volt a billentyűzeten, amit kézhez kaptam.
[ Szerkesztve ]
-
jetarko
csendes tag
Na megcsináltam.
Fejlesztés közben a tokeneket tárolom 1db properties fájlban, lehet 10 nyelv, akkor is csak egyben tárolom.
Írtam egy fv-t, ami a property fájl alapján a tokeneket felveszi db-be, ha van értéke a fájlban, akkor az értéket beszúrja, ha nincs akkor az értékhez a token kerül be maga.
A másik fv az adott nyelvhez tartozó property fájlt módosítja a db tartalma alapján. Ha ezt meghívom, akkor vagy 1db token értékét cseréli az adott nyelv property fájlban, vagy a db-ben tárolt összes értéket kiírja a fájlba.
A db-be kerüljenek tokeneket csak akkor kell lefuttatni ha új token kerül a property-be, ekkor az új token bekerül db-be. Innentől csak a 2. fv dolgozik.
Erre írtam egy felületet, ami onblur műveletre ajaxosan frissíti az adott property fájlban és db-ben szereplő értéket is.
A cacheSeconds 1-re van állítva. Jelenleg 100 tokennel nagyon gyorsan változtatva a frontenden az értékeket remekül működik, a context újratöltéstől semmi memória nem növekszik.
Ugye ez által futás közben bármikor beletudok nyúlni a token értékekbe, de a rendszer mégis a property fájlok alapján dolgozik, amihez gondolom valami gyors fa van építve, nem kell szarakodnom folyamatos db basztatás, cachelés dolgokkal.
Azt még nem találtam ki, hogy ezzel a megoldással futás közben új nyelvet, hogy tudok hozzácsapni, de majd még agyalok rajta.
A hibája ennek amit jelenleg látok, hogy a property fájl frissítéskor a fájl egésze újraírodik, ez ha nagyon sok token van lehet sokáig tartana. Ezt letesztelem hamarosan mennyi idő lehet 1milla tokent fájlba írni. A másik pedig az lehet, ha sok ember nagyon gyorsan sok tokent módosít egyszerre, de hát ezt nem tudom egymagam leszimulálni
A db réteg fölöslegesnek tűnik és majdnem, hogy az is, de ha cserélem a war-t a tomcatemben és közben egyik token értékét átírtam, akkor a régi propertiekkel felül csapom a jelenlegit és elveszett a módosítás, ha nem szedem le előtte a property fájlt.
Vélemény? -
DNReNTi
őstag
Hola,
Szeretném inicializálni az alábbit:
JetBrains IDEA + Maven + PrimeFaces + jBoss.Már hajam kitépem, mert egyszerűen képtelen vagyok egy ilyen project-et legalább a "hello world"-ig eljuttatni. Az eddig legjobb eredmény, hogy Maven kivételével ment minden, de akkor meg a PrimeFaces p: tag-ekkel nem tudott mit kezdeni a deploy, mivel Maven ekkor nem volt, a függőségeket nem tudtam behúzni. Szétolvastam már az internetet, találtam is példát, olyat is ami letölthető forrást ad, de azzal sem vagyok előrébb, az output üres, pedig változtatás nélkül letoltam. Próbáltam Tomcat-et is, azzal totális kapufa voltam.
Kicsit vakon vagyok még a Java világában, bocsi ha szakmailag nem helyes a fogalmazásom. Tehát magyarul: hogyan kezdjek egy java projektet, amiben PF-et szeretnék használni, és legalább odáig el tudok jutni, hogy kiírjak egy betűt? Köszi!
but without you, my life is incomplete, my days are absolutely gray
-
geckowize
őstag
Sziasztok
Elég beginner levelen vagyok Java-ból és gyakorlok egy könyv segítségével (Gál Tibor: Java programozás, Műegyetemi kiadó, 2002) és elakadtam egy feladatnál, amelyet hosszas guglizás követett, de mégsem jutok semmire.
A feladat a következő:
Konstruáljon meg egy osztályt egy parkolóban lévő autók nyilvántartására! Az
osztály tartalmazzon két példányváltozót a rendszám és a belépési idő, tovább
egy statikus változót a parkolóban jelen lévő autók számának tárolására. Az
utóbbit mindig növeljük eggyel, ha egy autó belépésekor létrehozunk egy új
autó objektumot, illetve csökkentsük eggyel, ha megszüntetünk egy autó
objektumot a null hozzárendeléssel.Ebből az utolsó rész nem megy, azaz, nem tudom a csökkentést hol végezzem. Mainben persze meg tudnám írni (simán meghívok egy függvényt a nullá tétel után), de nyilván nem ez a cél, a Car osztályban kellene valahogy megvalósítani, azonban mivel ez nem C++ és nincs destruktor, a finalize()-nak meg nem garantált a lefutása, nem tudom hogyan kellene figyelni, hogy egy-egy példányt null-á teszek.
Eddig a kód a következőképpen néz ki:
Car.java:
import java.util.Date;
public class Car {
private String licensePlate;
private Date arrival;
private static int numOfCars;
public Car(String lp, Date arr) {
this.licensePlate = lp;
this.arrival = arr;
numOfCars++;
}
public static int getNumOfCars() {
return numOfCars;
}
}Main.java:
import java.util.Date;
public class Main {
public static void main(String[] args) {
Date da = new Date();
Car a = new Car("AAA-111", da);
Date db = new Date();
Car b = new Car("BBB-222", db);
System.out.println(Car.getNumOfCars());
a = null;
b = null;
System.out.println(Car.getNumOfCars());
}
}[ Szerkesztve ]
-
geckowize
őstag
válasz WonderCSabo #6868 üzenetére
Ahogy én értelmeztem a Main-emben, szerintem úgy értendő.
Car a = new Car("AAA-111", da);
a = null; -
DNReNTi
őstag
válasz WonderCSabo #6868 üzenetére
Csak tippelem:
car = null; //car nyilván egy Car objektumbut without you, my life is incomplete, my days are absolutely gray
-
gygabor88
tag
válasz WonderCSabo #6871 üzenetére
Nem írta a feladat, hogy automatikusan működjön. Legyen public a static számláló és akkor lehet kézzel csökkenteni nullozás után.
-
M_AND_Ms
addikt
válasz WonderCSabo #6873 üzenetére
Már csak azért is, mert az a = null csak a referenciát nullozza, attól még az a Car példány létezik és még más referencia is hivatkozhat rá. Tehát totális hiba a számláló csökkentése azért, mert az a-t nullozzák.
Csókoltatom a könyv íróját!
Aki tejszínhabot szeretne, az inkább verje ki a fejéből!
-
cacattila
csendes tag
válasz geckowize #6869 üzenetére
Ez esetben egy rendkívül ronda trükkel bár elérheted amit akarsz,viszont ez nem megbízható, ugyanis a GC-re hagyatkozol, arra meg nem nagyon vagy befolyással, és őszintén kétlem, hogy a feladatban ilyet kérnének, tekintve a körítést. Lényeg a lényeg, ha felülírod a finalize() metódust, akkor amikor a GC megszünteti az objektumot, akkor ez a fv 1x meghívódik. Ismétlem, nem tartom valószínűnek hogy ez a feladat célja,ugyanis erre nem lehet építkezni, mivel ilyenkor a számláló csökkentésének időzítése nem determinisztikus a program szempontjából. Gyanítom egy destruktorral rendelkező programnyelvhez való példát próbál a tanár Java-ra erőltetni, ez így kicsit veszélyes dolog.
-
Aethelstone
addikt
Lehet, hogy nem vagyok ideológiailag elég képzett, de ha Java-ban egy példánynak adunk egy remek null értéket, akkor az egy dolog, hogy azonnal nem lesz legyalulva, majd a GC elintézi vmikor, de onnantól fogva az a példány már nem használható szerte szana az alkalmazásban...innentől nem értem ezt a felhajtást...vagy rosszul olvastam el a hozzászólásokat?
MI 10T Pro 8/256 , Arsenal FC - Go Gunnarz...
-
Aethelstone
addikt
válasz cacattila #6875 üzenetére
Nyilván az előző hsz-em alapján, ha nulloz a kolléga egy objektumpéldányt, akkor nyugodt szívvel csökkentheto a számlálóját. Az más kérdés, hogy értelme ennek a feladatnak annyi van, mint 6 pár használt rendőrcsizmának...
MI 10T Pro 8/256 , Arsenal FC - Go Gunnarz...
-
nagyúr
Csak a megfelelo fogalmazas kedveert: Java-ban semmifele 'peldanyt' vagy 'objektumot' nem lehet 'kinullozni'. Egy referenciat lehet atallitani null-ra.
while (!sleep) sheep++;
-
plaschil
aktív tag
Sziasztok!
Selenium-os kérdésem volna. Találkozott-e már valaki olyan problémával, hogy az abszolút xPath nem működik?
org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"xpath","selector":"html/body/div[1]/div[2]/div[1]/div/div[1]/div/div/div/div[2]/div/div/div[1]/table[4]/tr/td/div/div/button[2]"}
Command duration or timeout: 20.05 secondsKipróbáltam prohardveren, facebookon, google-n, ha a relatív xPath-t kicserélem abszolút xPath-ra, gond nélkül megy. De a tesztelni kívánt oldalnál a fenti hibát dobja.
Thread.sleep-et tettem bele, wait-et is, de semmi.Sajnos csak az abszolút xPath jöhet szóba, mert a felületen lehetnek azonos nevű elemek, pl. gombok, azonos css-el, azonos class-al, és bizonyos részben random ID-val. Pl. név+random szám. Semmi más nem különböztet meg 2 vagy több elemet, csak az abszolút xPath.
Creative G500 vezérlő panelt keresek// Hol vagy helyileg? - A kisszobába. // Szilvásbuktát, mert azt szeretem!
-
floatr
veterán
válasz Aethelstone #6876 üzenetére
Én első körben egy springet húznék alá, és a garázs management-et egy megfelelő perzisztenciával támogatott szolgáltatás végezné, a garázst elhagyó járműveket a fizetési felszólítás státuszba rakná, vagy archiválná
-
plaschil
aktív tag
FirePath-al nézem meg. Vagy nem erre vagy kíváncsi?
Creative G500 vezérlő panelt keresek// Hol vagy helyileg? - A kisszobába. // Szilvásbuktát, mert azt szeretem!
-
Szmeby
tag
válasz jetarko #6862 üzenetére
A magam részéről feleslegesnek tartom ennyire túlbonyolítani a dolgot. Ha statikus szövegről van szó, akkor annak a pártján vagyok, hogy tároljuk property fájlban, nyelvenként külön-külön:
messages_hu_HU.properties
messages_en_US.properties
stb...
Egy új nyelv bevezetése pofonegyszerű... persze ehhez matatni kell a fájlrendszeren.Amennyiben vannak olyan szövegek, amelyek gyakran változnak, akkor azok lehetnek adatbázisban (akár in-memory db, akár ennek rendszeres backup-jával). Igazából attól függ, hogy mi a célja, mire használod a szövegeket, mennyire érzékeny adatok ezek, stb.
Azzal, hogy két helyen tárolod a cuccokat, magadra vetted ezek szinkronban tartásának terhét. Ha ez az igény, akkor nincs mit tenni. Gondoltál a teljesítmény problémákra is, csinálsz hozzá pár komponens tesztet, ezeket akár egy CI rendszerben, akár időnként kézzel megfuttatod, és nincs vele teendő. Legfeljebb majd később átírod, a szoftver úgyis mindig fejlődik.
Sosincs jó megoldás, mindig a körülményektől, a felhasználási módtól függ. Mindig kell kompromisszumokat kötni, de ha már ezt teszem, igyekszem úgy, hogy a lehető legegyszerűbb maradjon a végeredmény. Csak ezt tudom tanácsolni neked is. -
jetarko
csendes tag
Én is túlbonyolításnak érzem, de hát kísérletezek
A csak db-be tárolással az a gondom, hogy ha MVC-ben vagyok, akkor a modelhez mindig adjam hozzá azt a szöveget ami ott megjelenik ez sok-sok model.add sor is lehet vagy nem tudom, hogy lehetne máshogyan.Az új nyelv futásidőben való hozzáadás az én megoldásomnál bonyolult, mert entitáson keresztül kezelem a db-t és ha új nyelvet akarok, akkor bővítenem kéne az entitásomat és erről fogalmam nincs, hogy lehetne futásidőben, vagy teljesen máshogyan kéne felépítenem az entitás rendszert, tuti lehetne trükközni, de még nem jöttem rá.
-
floatr
veterán
válasz Aethelstone #6882 üzenetére
Akkor egy mongodb elég lesz alá. Vagy clusterben gondoltad?
-
Szmeby
tag
Szoktatok több wart közös jvm-ben futtatni?
Én most egy embedded jettyvel küzdök. Adott néhány war, egy jettyben, de külön contextHandlerben. Látszik, hogy mindegyik war kap saját classloadert, még jó is lenne, ha ezek nem akadnának össze úton útfélen.
A probléma gyökere, hogy a resteasy egy uri feloldásakor a javax.ws.rs.core.UriBuilder-t használja (pontosabban annak egy resteasy-féle leszármazottját), az pedig a (szintén resteasy-féle) javax.ws.rs.ext.RuntimeDelegate kvázi-singletonhoz. Itt borul a bili, mivel a webapp1 már létrehozta ezt a singletont a saját classloaderével. Lazy init, hurrá!
public UriBuilder createUriBuilder() {
return new ResteasyUriBuilder();
}Érdekes, hogy amikor ráhívunk ennek a példánynak a createUriBuilder() metódusára, akkor az a webapp1 classloaderével betöltött objektumot gyártja le, függetlenül attól, hogy a metódus hívásakor a webapp2 környezetében járunk, a currentThread contextClassLoadere is a webapp2 classloaderére mutat.
Nem volt még alkalmam megismerkedni a classloaderek világával, valakinek van ebben tapasztalata? Hogyan is kellene - illene - több wart futtatni 1 embedded jetty alól?
Meg egyáltalán... nem a thread contextclassloaderét kellene használnia egy objektum legyártásakor? Vagy ilyenkor a legyártást végző osztály classloaderét örökli az új objektum? Ezekszerint az utóbbi.És persze a problémát az okozza, hogy a visszakapott UriBuilder objektumot ez a szerencsétlen castolná önmagára... vagyis majdnem, hiszen az cast során már képes a webapp2 által betöltött típust használni.
Eredmény: ClassCastException[ Szerkesztve ]
-
Sk8erPeter
nagyúr
válasz M_AND_Ms #6874 üzenetére
"Csókoltatom a könyv íróját!"
Nem lőttél mellé, nem akarok szemét lenni, de szegénykém egy kókler. Sok tekintetben megragadt a tudása valahol a kilencvenes évek végén, kétezres évek elején, szerintem nem igazán képzi már magát. Ezt onnan tudom, hogy BME-n még régebben felvettem nála egy webfejlesztéssel kapcsolatos tárgyat (kellett a kredit, gondoltam akkor már érdekeljen), és az előadásain a kínok kínját éltem át, amikor például megmutatta a JavaScript-kódjait, és a saját maga által sok-sok éve írt tákolmány fos kódot nem értette, látszott, hogy elakad, agyalnia kellett rajta, hogy az mit is csinál, már nekünk, a hallgatóknak volt égő, készültem rá, hogy jelentkezem, és elmagyarázom neki, mit csinál a saját kódja (de türelmesen vártam, mert így is elég kínos volt a helyzet), de 5 perces hümmögés után valahogy rájött, vagy skippelte a diát. Ősrégi, elavult módszereket alkalmazott, a kódok összecsapottak voltak... na most ennek fényében el lehet képzelni, mennyire lehetnek jók a Java-kódjai és -feladatai. Igazából megdöbbentő számomra, hogy BME-n taníthat (na nem mintha nem lehetne még sok nevet dobálni, akinek finoman szólva nem up-to-date a tudása).Szerk.: az egészből a következtetés igazából annyi, hogy szerintem azt a könyvet nem érdemes komolyan venni, így tanulni sem belőle, bár sosem olvastam, de az előbbi példa lehet, hogy elég is volt rá.
[ Szerkesztve ]
Sk8erPeter
-
floatr
veterán
JBoss tud olyant, hogy egy közös war-ba lehet telepíteni a közösen használt libeket. Mondjuk az sem sokkal jobb megoldás, de kicsit furcsállom ezt a classloader összeakadást. Most nézem, hogy maven plugin is van arra, hogy egy konkrét war-ból kimásolja a libeket az újba jettyhez.
Én mondjuk tutira kitesztelném ezt a dolgot egy saját jarba forgatott singletonnal, ami logol mindent, ami az életciklusával kapcsolatos.
-
Aethelstone
addikt
A Jbossnál ez úgy megy(ahogy emléxem), hogy megadható, hogy a különféle EAR fájlokat ugyanazzal a classloaderrel töltse be. Ami azért fancy, mert a cucc innentől fogva semmilyen más app szerverbe nem telepíthető Amennyiben a kód kihasználja ezt a remek feature-t Legalábbis a 4-es JBoss tudta ezt, azzal találkoztam utoljára.
Egyébként szerintem nem túl szerencsés, hogy a WAR-okat ugyanaz a classloader töltse.
MI 10T Pro 8/256 , Arsenal FC - Go Gunnarz...
-
Lortech
addikt
Nincs általános válasz, normálisan nem kéne ilyen probléma legyen két war között. A frameworköknek és konténereknek kéne megoldani, hogy ilyen ne legyen, mégis gyakran előfordulnak ehhez hasonló érdekességek.
A RuntimeDelegate lehet speciális, mivel javax-es package-ben van, és elképzelhető, hogy ezt a jetty a system classloaderrel tölti. Valami közös szülő classloadernek lennie kéne a két alkalmazás között, ami okozza a problémát, másként érvényesülne az, hogy a szóban forgó osztályok a war-ok WEB-INF/lib WEB-INF/classes-eiből töltenek, mivel ez prioritást élvez, és a két "különböző" verzió nem akadna össze.Meg egyáltalán... nem a thread contextclassloaderét kellene használnia egy objektum legyártásakor? Vagy ilyenkor a legyártást végző osztály classloaderét örökli az új objektum? Ezekszerint az utóbbi.
Utóbbi. A createUriBuilder működhetne úgy is, hogy a thread context classloaderrel tölt be egy implementációt, de a bemásolt kód nem ezt teszi (az se biztos, hogy ez a sor indukálja a class betöltését).
Amúgy hol vannak a resteasy lib-ek? WEB-INF/lib-ben van mindkét war-ban ugyanaz a verzió?
Én a "-verbose:class" -t is megnézném, hátha valami összefüggés kiolvasható belőle.[ Szerkesztve ]
Thank you to god for making me an atheist
-
floatr
veterán
válasz Aethelstone #6894 üzenetére
A jboss-deployment-structure.xml file-ban lehet definiálni, de talán van rá valami szabványos megoldás is a MANIFEST.INF-ben megadható dependency formájában.
Nem fogok most ennek utánajárni asszem, de én itt keresgélnék.
-
Szmeby
tag
válasz Lortech #6895 üzenetére
"Amúgy hol vannak a resteasy lib-ek? WEB-INF/lib-ben van mindkét war-ban ugyanaz a verzió?"
Igen, mindkér war WEB-INF/lib könytárában vannak a jarok. Ugyanaz a verzió, bár szerintem ez már nem sokat számít."Én a "-verbose:class" -t is megnézném, hátha valami összefüggés kiolvasható belőle."
Jaja, tegnap már mentem vele egy kört, de elég nagyok ezek a warok, hogy az eclipse console 2 war esetén is kifusson a maxra húzott pufferből.Köszönöm mindenkinek a tippeket, még szenvedek vele egy kicsit.
Legrosszabb esetben majd futnak külön jettyben.Érdekességképpen:
Thread.currentThread().getContextClassLoader()
/* WebAppClassLoader=webapp2 */
org.jboss.resteasy.specimpl.ResteasyUriBuilder.class.getClassLoader()
/* WebAppClassLoader=webapp2 */
javax.ws.rs.core.UriBuilder.fromUri(absoluteUri).getClass().getClassLoader()
/* WebAppClassLoader=webapp1 */
javax.ws.rs.core.UriBuilder.class.getClassLoader()
/* sun.misc.Launcher$AppClassLoader@74f2ff9b */
javax.ws.rs.ext.RuntimeDelegate.class.getClassLoader()
/* sun.misc.Launcher$AppClassLoader@74f2ff9b */
javax.ws.rs.ext.RuntimeDelegate.getInstance().getClass().getClassLoader()
/* WebAppClassLoader=webapp1 */org.jboss.resteasy.core.ThreadLocalResteasyProviderFactory (ami egy RuntimeDelegate) rendelkezik egy "org.jboss.resteasy.spi.ResteasyProviderFactory defaultFactory" field-del (ami szintén egy RuntimeDelegate). Bár threadlocal az osztály neve, de azt a funkcióját épp nem használja semmire, hanem a defaultFactory-val dolgozik, amihez a webapp1 anno már készített egy példányt. Ezen a példányon keresztül gyűrűzik be a rossz classloader a másik webapp-ba.
Az UriBuilder mélyén minden a webapp1 classloaderével készült.
org.jboss.resteasy.specimpl.ResteasyUriBuilder.class.getClassLoader()
/* WebAppClassLoader=webapp1 */
new org.jboss.resteasy.specimpl.ResteasyUriBuilder().getClass().getClassLoader()
/* WebAppClassLoader=webapp1 */Feltételezem, úgy lenne ez szép, ha a közös libek közös classloaderrel töltődnének be (külön webapp-ban?), csak hát erős a gyanúm, hogy a sok war libjei más-más közös részhalmazzal rendelkeznek.
Vaaagy, kicsomagolom a warokat egy helyre, és minden fusson a system classloaderrel.
Ez már nagyon hekkes lenne. -
vgergo
aktív tag
Sziasztok
Az alábbi kód megértéséhez kérnék segítséget:
Forráskód:
package proba;
public class NewClass {
static void aa(int i) {
i++;
}
static void bb(Integer i) {
i++;
}
static void cc(int[] i) {
i[0]++;
}
static void dd(int[] i) {
i = null;
}
public static void main(String[] args) {
int a = 9;
Integer b = 9;
int[] c = {9};
int[] d = {9};
System.out.println(a);
aa(a);
System.out.println(a);
System.out.println("-------------------------------");
System.out.println(b);
bb(b);
System.out.println(b);
System.out.println("-------------------------------");
System.out.println(c[0]);
cc(c);
System.out.println(c[0]);
System.out.println("-------------------------------");
System.out.println(d[0]);
dd(d);
System.out.println(d[0]);
}
}
Eredmény:
run:
9
9
-------------------------------
9
9
-------------------------------
9
10
-------------------------------
9
9
BUILD SUCCESSFUL (total time: 0 seconds)6. helyen miért 10 szerepel, míg a többi helyen csak 9?
Segítséget előre is köszönöm![ Szerkesztve ]
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Ukrajnai háború
- Stellar Blade
- AMD off topik: VGA, CPU, APU és minden, ami AMD
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Így építsd a billentyűzeted!
- Linux felhasználók OFF topikja
- Bemutatkozott a Moto G32 4G
- Luck Dragon: MárkaLánc
- Luck Dragon: Asszociációs játék. :)
- Autós topik látogatók beszélgetős, offolós topikja
- További aktív témák...
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen