Tema: Java / JSP problema
Autorius: AZ
Data: 2012-10-10 12:21:10
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!