Ahoj,
nemam bohuzel k dispozici zdrojaky od tridy JdbcRowSetResourceBundle
(ani classu - ve standardnim J2SE JDK 1.4.1 jsem ji nenasel) tak doufam ze
nebudu placat uplne nesmysly, ale jak to popisujes, pripada mi, ze by se
melo zjistit jak se v metode
com.sun.rowset.JdbcRowSetResourceBundle.getJdbcRowSetResourceBundle
konstruje inputstream - podle zdrojaku trid ke kterym zdroje mam se zda ze
se nenajde dany property soubor a diky tomu se jako InputStream podstrkuje
null - asi zjistit jake jmeno property souboru se tam pouziva (popr. odkud
se generuje) a podle onoho jmena mu pak podstrcit soubor, ktery se bude
jmenovat tak, jak se ocekava (ve spravne packagi). Rekl bych, ze se urcite
nebude jmenovat PropertyResourceBundle.properties, ale asi nejak jinak -
zrejme JdbcRowSetResourceBundle.properties (popr. napr.
JdbcRowSetResourceBundle_en.properties pro anglictinu, atp.) nebo nejak, jak
se to stanovi v te metode getJdbcRowSetResourceBundle...
Do konstruktoru PropertyResourceBundle (InputStream stream) totiz uz pri
volani z konstruktoru JdbcRowSetResourceBundle vstupuje s nejvetsi
pravdepodobnosti null, takze bych rekl ze s tridou PropertyResourceBundle
nebo nejakou teoretickou chybou v ni to urcite souviset nebude...
Prirozene je otazka jak najit spravny resource bundle - neni mozne ze se tam
ma dohrat jeste nejaky jar s lokalizaci nebo neco podobneho? Kdyz se tehle
chyby zbavis tim, ze tam das prazdny property soubor, tak to asi casem
spadne na tom, ze v tom property souboru neni nejaky klic, ktery to bude
treba pozadovat...
Mozna by pomohlo se podivat, jak zaridit spravne lokalizaci CachedRowSet a
to by mohlo vyresit tenhle problem ;-)
Chyba muze souviset i s tim, ze tam sice mas nejaky spravny odvozeny
resource bundle, napr. JdbcRowSetResourceBundle_cz.properties, ale jako
defaultni Locale neni nastaven jazyk ktery mu odpovida (v tomto priklade ne
cestina, ale treba anglictina pro kterou resource bundle s nazvem "*_cz"
nebude s fungovat) - bylo by dobre nakopirovat
(prejmenovat) takovehle nejake properties ktere tam treba existuji
specificke pro jazyk na jmeno property souboru bez toho "_cz" (nebo jine
pripony) aby to fungovalo pro vsechny Locale, popr. zkusit zmenit defaultni
Locale...
Jinak mne takhle obecne "z voleje" bez moznosti to zkoumat konkretne nic
nenapada... Treba to nejak pomuze v hledani voditka pokud to primo Tvuj
problem nebude resit...
Ahoj, Artur.
----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Thursday, August 31, 2006 4:58 PM
Subject: CachedRowSet+nullPointerException
> Dobre odpoledne,
> Pokud se nekdo setkal s nize uvedenym problemem a nasel reseni. Budu
nesmirne
> vdecny, za kazdy poznatek.
>
> Mam WebAplikaci
> JDK: 1.4
> Tomcat: 3.2
> Server: AS/400
>
> Volam servlet, ktery se connectuje na databazi (DB2) a vraci nejaky data.
> Jelikoz DB2 neumi LIMIT a ja potrebuju vracenymi daty listovat ( rozumej
> strankovat vystupni tabulku ) jal jsem se hledat reseni v cachovani dat a
> listovani z cache.
> Pouzivam rowset.jar 1.0 . Ale dostal jsem se do situace, ve ktere dkyz v
metode
> servletu chci vytvorit instanci
>
> CachedRowSet crs = new CachedRowSetImpl();
>
> dostanu nullPointerException cituji:
>
> java.lang.NullPointerException
> at java.io.Reader.<init>(Reader.java:61)
> at java.io.InputStreamReader.<init>(InputStreamReader.java:80)
> at java.util.Properties.load(Properties.java:266)
> at java.util.PropertyResourceBundle.<init>(PropertyResourceBundle.java:96)
> at com.sun.rowset.JdbcRowSetResourceBundle.<init>(Unknown Source)
> at
com.sun.rowset.JdbcRowSetResourceBundle.getJdbcRowSetResourceBundle(Unknown
> Source)
> at com.sun.rowset.CachedRowSetImpl.<init>(Unknown Source)
>
>
> Cele odpoledne marne hledam smysluplne reseni. Zjistil jsem, ze se jedna o
bug
> souvisejici se spatnym ctenim PropertyResourceBundle. Nasel jsem par typu,
ze
> je potreba prejmenovat PropertyResourceBundle.properties, ale at se snazim
jak
> chci, nedari se mi za boha hnout z mista.
>
> Vi nekdo co stim?????
>
> Poznamka:
> Nemohu upgradovat JDK ani Tomcat, musim pracovat s vyse uvedenymi.
>
> Zdenek Kasparek
>
> ----------------------------------------------------------------
> This message was sent using IMP, the Internet Messaging Program.