Tema: Re: Java / JSP problema
Autorius: Jonas
Data: 2012-10-10 13:54:20
Dekompilini SimpleIlaAppModuleHelper, ziuri ko tas NPE krinta ir bandai 
galvot.

"AZ"  wrote in message news:k53em6$df9$1@trimpas.omnitel.net...

Sveiki, specai,

Pradžiai atsiprašymas: mintis dėsto labiau sistemščikas, nei programeris, 
todėl gali būti šiokių tokių neatitikimų terminuos, bet gal pavyks išdėliot 
problemą daugiau mažiau suprantamai.

Ant Oracle AS paleistas iLearning projektėlis. Gyveno ir važiavo, vargo 
nematė. Vieną gražią dieną nustojo veikt (rodos iš niekur nieko, atnaujinimų 
neparėjo ir t.t.).

Iš serverio pusės žiūrint viskas puiku, viskas važiuoja, kiti JSP puslapiai 
važiuoja, o konkrečiai tos aplikacijos JSP, atsakingas už prisiloginimą- 
atiduoda baltą langą. Kadangi apache'iaus ir OracleAS log'ai nieko 
apčiuopiamo nedavė- pradėjau žiūrėt į login.jsp kodą ir kuri vieta sustabdo 
JSP kompiliavimą.

Paaiškėjo, kad tai vieno iš objektų vienas metodas, o konkrečiai šis:

[...]
<jsp:useBean id="buttonUtil" scope="request" 
class="oracle.ila.learner.model.UserInterfaceControls" />
[...]
String learnerPage = 
commonBean.getStringServer().getString("LOGIN_HEADING");
[...]

Būtent po šio metodo (getStringServer) iškvietimo į server.log krenta 
exception'as ir JSP kompiliavimas sustoja:

12/10/09 11:48:20.789 Internal server error
java.lang.NullPointerException
at 
oracle.ila.common.view.SimpleIlaAppModuleHelper.getNestedApplicationModule(SimpleIlaAppModuleHelper.java:139)
at 
oracle.ila.common.nls.StringLoaderTimerTask.run(StringLoaderTimerTask.java:42)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)


Užkomentavus kreipinį ir string'ą inicijavus paprastai- kodas nuvažiuoja iki 
sekančio tokio paties metodo kreipinio, kurių čia netrūksta...

Iš čia ir klausimas. Kas galėjo atsitikti, kad sugriuvo klasės metodas? Kiti 
to pačios klasės metodai dirba ok. Pačios klasės jar'uose ir kitur surast 
nepavyko- o jei ir pavyktų, matyt, source'o nebūtų, tai ir nauda 
abejotina... Ar įmanoma nujaust, kas čia darosi? Exception'as beviltiškai 
nieko nesako. Gal įmanoma sugudraut ką nors kode, kad tą metodą override'int 
kuo nors gudriu (nors bijau, kad sunkiai įmanoma ir nelabai suprantu, ką jis 
daro)... Ar kažkaip tiesiog paliept gaudyt tuos exception'us, kad nestabdytų 
tolesnio JSP kompiliavimo?..

Na žodžiu būtų įdomu pamąstymai ir pasvarstymai, nes nelabai minčių 
beliko...

Beje, Oracle AS perinstaliavimas ir aplikacijos perdeplojinimas duoda tokius 
pačius vaisius su ta pačia klaida.

Ačiū bent perskaičiusiems :)))


Pagarbiai!