RE: dispatcher ve filteru
Dobry den, Resil jsem taky, poznate to celkem jednoduse podle pritomnosti techto atributu requestu: /** * Name of the request attribute that holds the URI of the forwarded-to page. */ String REQATTR_JAVAX_FORWARD_URI = javax.servlet.forward.request_uri; /** * Name of the request attribute that holds the URI of the included page. */ String REQATTR_JAVAX_INCLUDE_URI = javax.servlet.include.request_uri; Nekde na googlu byl dobry popis toho co se posila a za jakych okolnosti (v j2ee spec by to taky melo byt popsano). Musite uprednostnit zpracovani javax.servlet.include.request_uri, protoze s forwardovane strany muzete udelat include, zatimco z includovane stranky forward neudelate (pred includem se flushne buffer a pokus o forward konci chybou response already comitted). Pripadne, jak Vam jiz radil nekdo jiny, 3 filtry jakozto 3 ruzne instance stejne tridy, kazdy s jinym parametrem urcujicim co zpracovava. Honza -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Petr Červinka Sent: Monday, September 25, 2006 4:39 PM To: Java Subject: dispatcher ve filteru Dobry den, ve web.xml mam takto zadany filter filter-mapping filter-nameSomeFilter/filter-name url-pattern/*/url-pattern dispatcherFORWARD/dispatcher dispatcherREQUEST/dispatcher dispatcherINCLUDE/dispatcher /filter-mapping Jsem schopen pak v samotnem filteru nejak rozlisit, jestli je volan pres FORWARD, REQUEST ci INCLUDE? Petr
RE: JSP IOException Connection reset ...
Radeji si to overte. Meli jste podobne problemy s IE a bylo to prave diky te nekonzistenci content-length a skutecne velikosti prenasenych dat. FF byl bez problemu. Pokud pokuzivate IntelliJ - pak muzete pouzit plugin TunelliJ. Pokud nemate, je jednoduchy a pouzitelny TCP monitor (org.apache.axis.utils.tcpmon) z distribuce Apache Axisu. Oboje funguje ala proxy. Nebo nejaky Ethereal aspol. Pak porovnat content-length a skutecnou delku dat v responsu u vsech responsu. Co dostavate, kdy si ten js tahate primo browserem zadanim jeho URL - dostanete vsechna data, nebo jen cast? Opakovane? S tim jinym projektem, kde Vam to funguje to je tedy trochu zahada pokud je naprosto identicky s tim problematickym projektem a delate tam tu samou vec zcela stejnym zpusobem... Honza -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of [EMAIL PROTECTED] Sent: Wednesday, September 13, 2006 11:00 AM To: konference@java.cz Subject: Re: JSP IOException Connection reset ... To si nemyslim. Dalsi poznatek je, diky terymu to nechapu uz vubec. Ze pokud si vytvorim jiny webproject testovaci a snazim se tu javascript knihovnu nacitat tam, tak to probehne bezproblemu a zadnou IOException to nevyhodi. Z.K. Quoting Vlastimil Eliáš [EMAIL PROTECTED]: A neni to napr. tim ze Tomcat nastavi do HTTP hlavicky spatnou delku vraceneho souboru pri tom dotazu na prototype.js ? Firefox se na to treba nediva a cte dokud ma data, ale IE se na to muze divat a cteni souboru ukoncit pred jeho skutecnym koncem. To by vysvetlovalo i ty nefunkcni javascripty (nefungovali by ale asi pouze ty co jsou na konci). Proc se to deje a co s tim Vam ale asi neporadim :-( Vl. [EMAIL PROTECTED] napsal(a): Zdravim, opet jsem narazil na zahadu, ktere naprosto nerozumim. Tudiz prosim o pomoc, pokud nekoho napada reseni. Problem je nasledujici. Mam web aplikaci JDK 1.4 Tomcat 3.2 do aplikace nacitam javascript knihovny. Jako prvni prototype.js coz je framework pro Ajax (ver 1.4.0) html head . script src=%= statApp.getProperty(relPath) %/js/prototype.js type=text/javascript language=javascript/script ... /head .. Ve chvili kdy se nacita. Dostanu na consoli track: 2006-09-13 10:05:39 - Ctx( /StatCenter ): IOException in: R( /StatCenter + /js/prototype.js + null) Connection reset by peer: socket write error a nasledne aplikace sice funguje, ale nektery javascripty ne. Problem je, ze toto dela pouze pokud aplikaci spoustim v IE. Ve FF nic takoveho nedela !!! - Za timto scriptem nacitam jeste X dalsich, ty se nactou bezproblemu. - Cesta k javascript souborum je spravna - v prototype.js souboru problem neni, pouzivam ho i v jinych aplikacich na jinych serverech ( nejedna se v techto pripadech o JSP ) Nenapada prosim nekoho co stim? Krom toho zahodit a jit se zivit jako uklizecka? Diky predem Zdenek Kasparek This message was sent using IMP, the Internet Messaging Program. -- Ing. Vlastimil EliasQbizm technologies, a.s. vedouci analytik... the art of software. www.qbizm-technologies.czwww.qbizm.cz www.qbizm-services.cz This message was sent using IMP, the Internet Messaging Program.
RE: JSP IOException Connection reset ...
Vyresili jsme to celkem jednoduse - v content-length jsme zacali posilat korektni pocet bytu ktere v responsu skutecne chodily ;) Ve Vasem pripade je situace trochu komplikovanejsi v tom, ze ten content-length nenastavujete vy, ale nejaky defaultni procesor v Tomcatu. Takze bych postupoval takto: 1) overte, ze jde skutecne o problem content-length != skutecna delka dat 2) pokud ano, pak si asi budete muset napsat nejaky jednoduchy servlet pro zasilani techto statiskych resourcu, kde si budete moci nastavit content-length dle pozadavku. Tento servlet si pak namapujete na *.js a ostatni resourcy se kterymi mate problem. Mozna by fungoval i nejaky filtr modifikujici content-length. Je to _silne_ nestandardni reseni, takze to nejpise zareportujte v Tomcatim foru (ale obavam se, ze Tomcat 3.2 Vam nikdo fixovat nebude - to je tak 5 let stara verze). Proto bych mozna uplne nejdrive doporucil upgrad na novejsi verzi... (5.5). Ad: Potlacit exception. V cem myslite, ze Vam to pomuze? Problem budete mit porad stejny (nefunkcni JS), jen nic neuvidite v logu... No nevim. Honza -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of [EMAIL PROTECTED] Sent: Wednesday, September 13, 2006 11:53 AM To: konference@java.cz Subject: Re: JSP IOException Connection reset ... To Jiri Mares: Preklep to byl, omlouvam se za nej. Property vraci samozrejme: http://localhost:8080/StatCenter pokud si jej vyzdam primo. ( dam do prohlizece http://localhost:8080/StatCenter/js/prototype.js ) tak to Exception nevyhodi. IE to spusti a zarve ze tam je v nem chyba. Ale to stim nesouvisi. IE je naprosto dementni vec a co se tyka debugu JS tak obvzlast. Zajimavy je, ze pokud nacitani toho scriptu odstranim a nasledne projekt spustim, tak to rve IOException jinde. ( vetsinou u nacitani background obrazku v css souboru ) uz jsem tuto exception dostal i na index.jsp to Moravec Jan: ten jiny projekt nebyl identicky, jen jsem si udelal jednoduchou jsp page kde jsem ten javascript file nacital. Tam se nic takovyho neobjevilo. Jinak muzete popsat jak konkretne jste tento problem vyresili ? Omlouvam se za lamackej dotaz, ale neda se nahodou primo v JSP nejakym zpusobem konkretne tato exception zahodit? Z. K. Quoting Jiří Mareš [EMAIL PROTECTED]: A coz si vyzadat ten soubor javascript.js primo a porovnat jej s originalem na serveru? Melo by to take hodit tu IOexception ... Moravec Jan napsal(a): Radeji si to overte. Meli jste podobne problemy s IE a bylo to prave diky te nekonzistenci content-length a skutecne velikosti prenasenych dat. FF byl bez problemu. Pokud pokuzivate IntelliJ - pak muzete pouzit plugin TunelliJ. Pokud nemate, je jednoduchy a pouzitelny TCP monitor (org.apache.axis.utils.tcpmon) z distribuce Apache Axisu. Oboje funguje ala proxy. Nebo nejaky Ethereal aspol. Pak porovnat content-length a skutecnou delku dat v responsu u vsech responsu. Co dostavate, kdy si ten js tahate primo browserem zadanim jeho URL - dostanete vsechna data, nebo jen cast? Opakovane? S tim jinym projektem, kde Vam to funguje to je tedy trochu zahada pokud je naprosto identicky s tim problematickym projektem a delate tam tu samou vec zcela stejnym zpusobem... Honza -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of [EMAIL PROTECTED] Sent: Wednesday, September 13, 2006 11:00 AM To: konference@java.cz Subject: Re: JSP IOException Connection reset ... To si nemyslim. Dalsi poznatek je, diky terymu to nechapu uz vubec. Ze pokud si vytvorim jiny webproject testovaci a snazim se tu javascript knihovnu nacitat tam, tak to probehne bezproblemu a zadnou IOException to nevyhodi. Z.K. Quoting Vlastimil Eliáš [EMAIL PROTECTED]: A neni to napr. tim ze Tomcat nastavi do HTTP hlavicky spatnou delku vraceneho souboru pri tom dotazu na prototype.js ? Firefox se na to treba nediva a cte dokud ma data, ale IE se na to muze divat a cteni souboru ukoncit pred jeho skutecnym koncem. To by vysvetlovalo i ty nefunkcni javascripty (nefungovali by ale asi pouze ty co jsou na konci). Proc se to deje a co s tim Vam ale asi neporadim :-( Vl. [EMAIL PROTECTED] napsal(a): Zdravim, opet jsem narazil na zahadu, ktere naprosto nerozumim. Tudiz prosim o pomoc, pokud nekoho napada reseni. Problem je nasledujici. Mam web aplikaci JDK 1.4 Tomcat 3.2 do aplikace nacitam javascript knihovny. Jako prvni prototype.js coz je framework pro Ajax (ver 1.4.0) html head . script src=%= statApp.getProperty(relPath) %/js/prototype.js type=text/javascript language=javascript/script ... /head .. Ve chvili kdy se nacita. Dostanu na consoli track: 2006-09-13 10:05:39 - Ctx( /StatCenter ): IOException in: R( /StatCenter + /js/prototype.js + null) Connection reset by peer: socket write error a nasledne aplikace sice funguje, ale nektery javascripty ne. Problem je, ze toto dela pouze
RE: Jak zjistit, které JARy jsou aplikací po užívány?
S vlastnimclassloaderem by to bylo nejspolehlivejsi, ale asi ne uplne trivialni. Pokud netahate mnoho tridpres reflection, pak by mohl pomoci jarjar (http://tonicsystems.com/products/jarjar/) - dokaze najit zavislosti mezi jary. Pouzitim minimalne vytipujete ty co se urcite pouzivaji, zbytek vyresite za behu aplikace metodou pokus-omyl. Honza -Original Message-From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]On Behalf Of "Ing. Jan Novotný"Sent: Wednesday, September 13, 2006 5:47 PMTo: konference@java.czSubject: Jak zjistit, které JARy jsou aplikací používány?Zdravím konferenci, mám zajímavý problém - je aplikace, která se potřebuje k běhu více než 50 MB jarů. Aplikace běží na JBossu a skládá se z web rozhraní a EJB. Máme podezření hraničící s jistotou, že poměrně velká řádka z nich není aplikací vůbec využívána - jen nevíme které. Rádi bychom tu aplikaci zeštíhlili, jenomže problém je v tom, jak zjistit, které jary můžeme bezpečně odebrat (vnitřní chování aplikace totiž přesně neznáme). Jelikož je aplikace pokrytá testy po spuštění těchto testů by měly být v paměti +/- všechny classy, které jsou zapotřebí. Takže nás napadlo rozšířit classloader, který by sledoval z kterých jarů jsou classy nahrávány a dokázal na požádání tento seznam vypsat. Sám jsem nikdy classloader nepsal, ale mám takové tušení, že změna classloaderu v aplikačním serveru nebude nikterak triviální, pokud bude vůbec možná. Na druhou stranu si říkám, že určitě nejsem jediný, kdo tenhle problém řešil (ačkoliv jsem nic nevyguglil) a třebas nějaká utilitka již existuje. Nemáte někdo zkušenosti s tímhle problémem?S pozdravemH.N. -- Ing. Jan Novotný Software Engineer Fincom-Materna Communications, a.s. SNP 402, 500 03 Hradec Králové 3 Czech Republic
Chovani UserTransaction v container-managed tx prostredi
Ahoj, Rad bych se zeptalnejakeho J2EE znalce jak se chova UserTransaction v prostredi, kde je pouzitafasada ze session beanu s container-managed transakcemi (vse nastaveno na Required). V podstate nastavaji tyto dva pripady: 1) UserTransaction vytvorim pred tim, nez se zavola metoda na session beanu (tj. pred tim, ze container pripadne zalozi novou transakci) 2) UserTransaction vytvorim az nekde zasession beanem. Otazky: ad 1) Pouzije session bean jiz existujici transakci (tj. moji UserTransaction), nebo vytvori novou? ad 2) Dostanu v podobe UserTransaction novou transakci, nebo dostanu jiz existujici transakci? Nekde jsem zahledl neco o tom, ze J2EE nepodporuje vnorovani transakci, takze predpokladam, ze dostanu jiz existujici transakci. Nicmene, co kdyz na ni explicitne zavolam commit a pak nekde dale behem dalsiho zpracovanivyhodim runtime vyjimku s tim, ze chci rollback cele transakce. Provede se rollback i toho co jsem jiz comittoval v UserTransaction? V podstate mi jde o implementaci udalostniho frameworku - aplikace v ruznych mistech (treba i na JSP strankach, pripadne hloubeji za session facade) generuje udalosti. Tyto se predavaji do registrovanych listeneru. Listener muze provadet cokoli (typicky zapis do DB) a potrebuji zarucit, ze veskere zpracovani ve vsech listenerech probehne v jedne transakci. Diky moc za osvetleni. Honza
RE: Chovani UserTransaction v container-managed tx prostredi
Diky moc. Neseplo mi, ze UserTransaction se da pouzit i pro monitorovani transakci vytvorenych kontejnerem. Pokud bude fungovat, je to presne to co potrebuji . Honza -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Vaclav Pech Sent: Monday, September 11, 2006 12:52 PM To: Java Subject: Re: Chovani UserTransaction v container-managed tx prostredi Ke zjištění stavu aktuální transakce by mělo jít využít metodu UserTransaction.getStatus(). Pro vás jsou asi důležité hlavně STATUS_ACTIVE a STATUS_NO_TRANSACTION. Vašek Moravec Jan wrote: Dekuji za odpoved. Timto se to tedy trochu redukuje. Potrebuji tedy detekovat, zda jsem jiz v nejake transakci. Pokud ano, novou transakci neoteviram (pisete, ze pokus o zavolani neceho ve vytvorene UserTransakci by stejne skoncil s chybou). Pokud ne, otevru novou UserTransaction pokracuji dal s tim, ze beany jiz tuto transakci prevezmou. Jak detekovat, ze prave (ne)bezim v transakci? Predpokladam, ze toto bude nejspise dost server-specificka zalezitost... Dekuji, Honza -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Stanislav Ošmera Sent: Monday, September 11, 2006 12:34 PM To: Java Subject: Re: Chovani UserTransaction v container-managed tx prostredi Jestlize mate na beane nastaveno required tak to proste znamena ze ta beana musi bezet v transakci. Kdyz je jiz nejaka transakce spustena at jiz userTransaction mebo containerrem nastartovana tak se spusti v teto transakci. Jestlize v transakci nebezi tak si spusti novou. Jeste muze byt nastaveno na: RequiresNew- nastartuje novou transakci bez ohledu na predchozi stav Mandatory- kdyz bezi v transakci tak v ni pokracuje, kdyz v transakci nebezi tak hodi vyjimku. ad2) kdyz vytvorite novou transakci tak je vzdy nova. Ted moc nechapu na co se ptate, ale nekde v prubehu nemuzete explicitne volat commit kdyz jsou ty beany zpracovavane containerem (jsou zakazany metody z javax.transaction.UserTransaction) tudiz ani v prubehu nemuzete ani tu UserTransaction vytvorit protoze jiz bezi v kontejnerem rizene transakci On 9/11/06, Moravec Jan [EMAIL PROTECTED] wrote: Ahoj, Rad bych se zeptal nejakeho J2EE znalce jak se chova UserTransaction v prostredi, kde je pouzita fasada ze session beanu s container-managed transakcemi (vse nastaveno na Required). V podstate nastavaji tyto dva pripady: 1) UserTransaction vytvorim pred tim, nez se zavola metoda na session beanu (tj. pred tim, ze container pripadne zalozi novou transakci) 2) UserTransaction vytvorim az nekde za session beanem. Otazky: ad 1) Pouzije session bean jiz existujici transakci (tj. moji UserTransaction), nebo vytvori novou? ad 2) Dostanu v podobe UserTransaction novou transakci, nebo dostanu jiz existujici transakci? Nekde jsem zahledl neco o tom, ze J2EE nepodporuje vnorovani transakci, takze predpokladam, ze dostanu jiz existujici transakci. Nicmene, co kdyz na ni explicitne zavolam commit a pak nekde dale behem dalsiho zpracovani vyhodim runtime vyjimku s tim, ze chci rollback cele transakce. Provede se rollback i toho co jsem jiz comittoval v UserTransaction?
RE: for vs. while - problemy s SQL Drivery
), MySQL 3.x, 4.x (drivery org.gjt.mm.mysql* i com.mysql.*), HSQLDB 1.7.x. Myslim, ze i s Oracle 8.5 nebyl problem, ale to uz je davno, mozna se pletu (resp. mozna to tehdy bylo psane jinak). Mohl bych se poucit, s jakymi DB/drivery jste zazili problemy? Diky Roman - Original Message - From: Moravec Jan [EMAIL PROTECTED] To: Java konference@java.cz Sent: Wednesday, August 23, 2006 5:29 PM Subject: RE: for vs. while No jo, ale ve finally ten RS nezavrete, kdyz to je lokalni promenna toho cyklu. Takze v ty podobe v jake to bylo presentovano, tj. for (ResultSet res=...; res.next(); ) { } je to spise hezky antipattern. H. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Stanislav Ošmera Sent: Wednesday, August 23, 2006 4:41 PM To: Java Subject: Re: for vs. while On 8/23/06, Moravec Jan [EMAIL PROTECTED] wrote: Zdravim, Asi jsem neco nepochopil, ale jak korektne uzavrete ten otevreny result set bez toho, ze byste spolehal na to, ze se to mozna udela samo pri zavirani prepared statementu? Nedoporucuji na prilis spolehat na to, ze se ResultSet uzavre v okamziku uzavreni statementu (to rika javadoc u ResultSet.close). Presne, drive jsem se na to spolehal az jsem jednou dost narazil a musel to prepisovat vsude. Myslim mozna ze je to napsano i v tom Blochovy ze resultset vzdy zavirat ve finally bloku, nikdy se nespolehat na zadnou automatiku -- Stanislav Ošmera Work: +44 (0)2075 980 348 Cell: +44 (0)7914 635 412 private email: [EMAIL PROTECTED] work email: [EMAIL PROTECTED] Skype: sosmera ICQ:149634231
RE: for vs. while
Zdravim, Asi jsem neco nepochopil, ale jak korektne uzavrete ten otevreny result set bez toho, ze byste spolehal na to, ze se to mozna udela samo pri zavirani prepared statementu? Nedoporucuji na prilis spolehat na to, ze se ResultSet uzavre v okamziku uzavreni statementu (to rika javadoc u ResultSet.close). Je to dost implementacne zavisla vec a uz jsem videl drivery, kde bez uzavreni RS dochazelo k osklivym memory leakum. Navic prepared statementy jsou v 'rozumnejsich aplikacich cachovany (napriklad na WebSphere, ale i jinde, zavisi co pouzivate za connection pool) a nejsou tudiz fyzicky uzavirany - aplikace dostane wrapper nad statementem a pokud zavola close, jen se ten statement vrati do poolu a close se nad tim zabalenym statementem nevola - stejny princip jako u poolovanych Connection. Joshe Blocha drzim ve velke vaznosti, ale tento pattern je dost velky ulet, nebo je pouzitelny jen za urcitych okolnosti (mate dobry driver a necachuji se prepared statementy) - mozna je to v te knize zmineno, necetl jsem. Honza -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Roman Kratochvil Sent: Wednesday, August 23, 2006 12:56 PM To: Java Subject: Re: for vs. while Zdravim, a co si myslite o tomhle: PreparedStatement ps = ... for (ResultSet rs = ps.executeQuery(); rs.next(); ) { ... } Podle me je to lepsi nez ucebnicovy dvouradkovy while... a take v souladu s nazorem Joshuy Blocha v Effective Java... Roman - Original Message - From: Benda Lukas [EMAIL PROTECTED] To: Java - diskuse konference@java.cz Sent: Wednesday, August 23, 2006 10:53 AM Subject: for vs. while Dneska jsem ve jednom frameworku narazil na tuhle konstrukci: for (; text != null;) { ... } Mne to prijde jako docela praseci konstrukce. Muze mit nejake opodstatneni pouzit takhle for misto toho aby se pouzil while? Lukas benzin Benda
RE: for vs. while
No jo, ale ve finally ten RS nezavrete, kdyz to je lokalni promenna toho cyklu. Takze v ty podobe v jake to bylo presentovano, tj. for (ResultSet res=...; res.next(); ) { } je to spise hezky antipattern. H. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Stanislav Ošmera Sent: Wednesday, August 23, 2006 4:41 PM To: Java Subject: Re: for vs. while On 8/23/06, Moravec Jan [EMAIL PROTECTED] wrote: Zdravim, Asi jsem neco nepochopil, ale jak korektne uzavrete ten otevreny result set bez toho, ze byste spolehal na to, ze se to mozna udela samo pri zavirani prepared statementu? Nedoporucuji na prilis spolehat na to, ze se ResultSet uzavre v okamziku uzavreni statementu (to rika javadoc u ResultSet.close). Presne, drive jsem se na to spolehal az jsem jednou dost narazil a musel to prepisovat vsude. Myslim mozna ze je to napsano i v tom Blochovy ze resultset vzdy zavirat ve finally bloku, nikdy se nespolehat na zadnou automatiku -- Stanislav Ošmera Work: +44 (0)2075 980 348 Cell: +44 (0)7914 635 412 private email: [EMAIL PROTECTED] work email: [EMAIL PROTECTED] Skype: sosmera ICQ:149634231
RE: Analyza zdrojaku
Zdravim, IntelliJ pouzivam taky, jde mi ale primarneo nastroje, ktere se daji poustet davkove v ramcibuildu (z Antu). Mimochodem, tovypinanim "kdyz to vadi" vIntelliJ neni IMO moc dobre- je tobud vse, nebo nic, pripadne s moznosti vseho per soubor. Chybi mitam tlacitko "s timto warningemmeuz nikdy neotravuj pokud si tonevyzadam". Vyzadani by se pak deloper soubor,per modul ci perprojekt. To by se mi libilo ;) Honza -Original Message-From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]On Behalf Of Horvath, BystrikSent: Tuesday, August 01, 2006 4:07 PMTo: JavaSubject: RE: Analyza zdrojaku Zdravim, ja pouzivam zabudovany code inspector v IDE - IntelliJ IDEA. Jednotlive kriteria na analyzu kodu sa daju enablovat/disablovat pred analyzou projektu/modulu, alebo dynamicky - IDEA totiz dokaze robit analyzu online pocas editacie suboru, no a ked mi nieco vadi a nepovazujem to za warning tak to jednorazove disablujem. Analyza sa da spustit aj mimo prostredia, co je asi rychlejsie, alespracovat vysledky nie je take komfortne. Bystro From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Moravec JanSent: Tuesday, August 01, 2006 3:45 PMTo: Java (E-mail)Subject: Analyza zdrojaku Zdravim, Pouzivam findbugs pro analyzu potencialnich chyb ve zdrojovem kodu, nicmenevim, ze podobnych nastroju existuje cela rada (PMD, checkstyle, hammurapi atd atd.) + existuje metacheck, zminovany zde pred casem, ktery vygeneruje uniformni vystup z vystupu jednotlivych nastroju. Jak asi vedi ti, kteri tyto nastroje pouzivaji, upozorneniprodukovane temito nastroji jdou obcas mimo realitu a jejich pouzitelnost je ruzne omezena (reportuji veci, ktere jsou naprosto v poradku, nedovoluji warningy anotovatatd). S jakym z techto nastroju mate dobrou praktickou zkusenost? Pouzivat 10 ruznych nastroju (treba i pres zminovany metacheck) momentalne nechci. Potreboval bychhlavne nastroj, kterydovoli jednotlive warningyanotovat do nejakeho _externiho_ souboru (tj. ne do vygenerovaneho reportu) a prianalyze nove vygenerovaneho reportu dovoli nacteni techto anotaci, cimz se redukuje pocet warningu jen na nove, jestenevyresene/neodkyvnute. Nebavi meopakovane prochazet 100-ky warningu, ktere jsem jiz "odkyvl" s tim, ze nejde o problem. Existuje neco takoveho? Diky, Honza
RE: equals a hashCode (WAS: java.security.Permission)
V HashMap,Hashtable apod. V nich jsou prvky organizovany dle jejich hashcodu (rychlejsi vyhodnoceni (ne)shody pri hledani) a teprve v zaverecne fazy se pouzijeequals. V hash tabulkach jsou totiz prvky organizovany dle jejich hashcode (kolize se resi prostym retezenim za sebou, nebo do spojoveho seznamu). Tudiz pri dotazech typu containsKey, get apod senejprve hleda dle hashcode a nasledne se provadi porovnani pres equals. Honza -Original Message-From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]On Behalf Of Kamzik-IISent: Thursday, July 27, 2006 3:25 PMTo: JavaSubject: Re: equals a hashCode (WAS: java.security.Permission) O boze, equals tady nekdo pekne vysvetlil na vytiscich knih, hascode vicemene taky chapu, ale neni mi jasne na co je mi dobrej ;-) - Original Message - From: Vit Novak To: 'Java' Sent: Thursday, July 27, 2006 1:07 PM Subject: equals a hashCode (WAS: java.security.Permission) Zdravim. Doporucuji precist si knizku od pana Blocha (cesky Java efektivne, anglicky Effective Java). Pan Bloch tuto problematiku rozebira pomerne podrobne a myslim, ze tohle patri k zakladnim znalostem, bez kterych dobry Java kod proste psat nebudete. Jedna se totiz o to, ze predefinovani metody equals nebo hashCode vas zavazuje k dodrzeni urcitych pravidel, bez kterych vam treba Collections budou chodit _velmi_ divne nebo vubec. Samozrejme je mozne nadefinovat hashCode a equals implementovat jen jako porovnani hashCode, to ovsem casto neni to, co chcete. Vetsinou jdete obracene nejak si urcite, kdy maji byt dve instance nejake tridy rovne a to naimplementujete. Napriklad budete mozna chtit aby dve ruzne instance tridy mujBigInt, reprezentujici cislo 37, vratily na equals true, ale reprezentace cisla 37 a cisla 56498765654987984632159789 by na equals true vratit nemela. Pak Vas ovsem hashCode zavazuje, aby equals instance vracely stejny hashCode, ale nijak Vas nenuti, aby pro dve instance, ktere equals nejsou byly hashCode ruzne. A zrovna u mujBigIntu hashCode tak, aby pro kazda dve nonequals cisla vratil ruzne hashe, proste nevymyslite. Dalsi vec je, ze kod, kde equals je implementovano jako porovnani hashi, nebude zrovna moc citelny... Toz tak, hodne stesti V. From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Kamzik-IISent: 27. července 2006 12:49To: JavaSubject: Re: java.security.Permission Ale paklize by tohle vzdy platilo, pak by byla uplna blbost predefinovat metodu equals, protoze by v ni stacilo porovnavat hascode, kdezto v rodicovske implementaci se porovnavaji pouze instance. - Original Message - From: Richard Malaschitz To: Java Sent: Thursday, July 27, 2006 10:58 AM Subject: Re: java.security.Permission A este si treba pozriet Javadoc k samotnemu objektu java.lang.Object. Tam sa pise o metode hashCode(), ze musi byt implementovana tak aby dva objekty, ktore su equals() musia mat rovnaky hshCode().
RE: equals a hashCode (WAS: java.security.Permission)
To je daleko starsi koncept. Pamatuji se, ze ve skole jsme se o tom ucili v zakladech programovani a to bylo min 2 roky pred Javou (uz jsemkmet ;) H. -Original Message-From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]On Behalf Of Kamzik-IISent: Thursday, July 27, 2006 3:41 PMTo: JavaSubject: Re: equals a hashCode (WAS: java.security.Permission) Hm dumyslne ;-) Ti navrhari javy nebyli uplne "blbi" :) - Original Message - From: Moravec Jan To: Java Sent: Thursday, July 27, 2006 3:38 PM Subject: RE: equals a hashCode (WAS: java.security.Permission) Trefa do cernyho ;) Pres hashcode se "nablizite", pres equals dohledate. Princip je ten, ze nedelate equals pres vsechno (u slozitejsich objektu muze byt pomale,treba i u Stringu by ten equals nemusel byt uplne idealni). H. -Original Message-From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]On Behalf Of Kamzik-IISent: Thursday, July 27, 2006 3:37 PMTo: JavaSubject: Re: equals a hashCode (WAS: java.security.Permission) Aha takze ciste jenom kvuli rychlosti? - Original Message - From: Moravec Jan To: Java Sent: Thursday, July 27, 2006 3:32 PM Subject: RE: equals a hashCode (WAS: java.security.Permission) V HashMap,Hashtable apod. V nich jsou prvky organizovany dle jejich hashcodu (rychlejsi vyhodnoceni (ne)shody pri hledani) a teprve v zaverecne fazy se pouzijeequals. V hash tabulkach jsou totiz prvky organizovany dle jejich hashcode (kolize se resi prostym retezenim za sebou, nebo do spojoveho seznamu). Tudiz pri dotazech typu containsKey, get apod senejprve hleda dle hashcode a nasledne se provadi porovnani pres equals. Honza -Original Message-From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]On Behalf Of Kamzik-IISent: Thursday, July 27, 2006 3:25 PMTo: JavaSubject: Re: equals a hashCode (WAS: java.security.Permission) O boze, equals tady nekdo pekne vysvetlil na vytiscich knih, hascode vicemene taky chapu, ale neni mi jasne na co je mi dobrej ;-) - Original Message - From: Vit Novak To: 'Java' Sent: Thursday, July 27, 2006 1:07 PM Subject: equals a hashCode (WAS: java.security.Permission) Zdravim. Doporucuji precist si knizku od pana Blocha (cesky Java efektivne, anglicky Effective Java). Pan Bloch tuto problematiku rozebira pomerne podrobne a myslim, ze tohle patri k zakladnim znalostem, bez kterych dobry Java kod proste psat nebudete. Jedna se totiz o to, ze predefinovani metody equals nebo hashCode vas zavazuje k dodrzeni urcitych pravidel, bez kterych vam treba Collections budou chodit _velmi_ divne nebo vubec. Samozrejme je mozne nadefinovat hashCode a equals implementovat jen jako porovnani hashCode, to ovsem casto neni to, co chcete. Vetsinou jdete obracene nejak si urcite, kdy maji byt dve instance nejake tridy rovne a to naimplementujete. Napriklad budete mozna chtit aby dve ruzne instance tridy mujBigInt, reprezentujici cislo 37, vratily na equals true, ale reprezentace cisla 37 a cisla 56498765654987984632159789 by na equals true vratit nemela. Pak Vas ovsem hashCode zavazuje, aby equals instance vracely stejny hashCode, ale nijak Vas nenuti, aby pro dve instance, ktere equals nejsou byly hashCode ruzne. A zrovna u mujBigIntu hashCode tak, aby pro kazda dve nonequals cisla vratil ruzne hashe, proste nevymyslite. Dalsi vec je, ze kod, kde equals je implementovano jako porovnani hashi, nebude zrovna moc citelny... Toz tak, hodne stesti V. From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Kamzik-IISent: 27. července 2006 12:49To: JavaSubject: Re: java.security.Permission Ale paklize by tohle vzdy platilo, pak by byla uplna blbost predefinovat metodu equals, protoze by v ni stacilo porovnav
Generiky
Ahoj, Uz mi z toho jde hlava kolem a nemohu naleztspravnou syntaxy. Mam statickou metodu: public static T T createMBeanProxy( String objectName, ClassT interfaceClass ) Pokud ji volam pro ziskani MBeanu jednoduchych(neparametrizovatelnych) typu, napriklad BusinessRegisterServiceMBean busRegMBean =ServiceLocator.createMBeanProxy( "neco", BusinessRegisterServiceMBean.class ); neni problem. Pokudvsak ten interface (interfaceClass) je slozitejsiho typu, napriklad chci vratit instanci typu CacheServiceMBeanLong, ManagedLString, pak nemohu prijit na to, jakym zpusobem toho dosahnout, abych se vyhnul castovani. To jest: Toto funguje, ale warning o castu CacheServiceMBean na CacheServiceMBeanLong, ManagedLString: CacheServiceMBeanLong, ManagedLString cacheMBean = (CacheServiceMBeanLong, ManagedLString) ServiceLocator.createMBeanProxy( config.get("neco", CacheServiceMBean.class ); Ja chci zapis bez castu, tj. neco jako: CacheServiceMBeanLong, ManagedLString cacheMBean = ServiceLocator.createMBeanProxy( config.get("neco", CacheServiceMBeanLong, ManagedLString.class ); Coz mi kompilator nesezere (nelibi se mu ten zapis CacheServiceMBeanLong, ManagedLString.class). Diky za nakopnuti. Honza
RE: Generiky
Dekuji za odpoved. Toho jsem se obaval, ze to nepujde. Myslite, abych udelal jeste verze metody specificke pro konkretni typy? Napr: public static K,V CacheServiceMBeanK,V createMBeanProxy( String objectName, ClassCacheServiceMBeanK,V interfaceClass ) throws ServiceLocatorException Problem je v to, ze toto ma stejny erasure jako ta puvodni metoda, takze to compiler neprelozi (vznikla by uplne identicka metoda). Jak spravne rikate, ty typy se kompilaci odmaznou... No asi se smirim s tema castama, neni to sice moc elegantni, ale co se da delat. H. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Martin Kuba Sent: Wednesday, June 21, 2006 6:13 PM To: Java Subject: Re: Generiky Hledate marne, takhle to nejde, pri behu uz neexistuje informace o parametrizaci CacheServiceMBean, a tudiz ta metoda createMBeanProxy() nemuze vedet, jak je CacheServiceMBean parametrizovany. Pokud muzete zmenit tu createMBeanProxy(), pridejte ji argumenty pro specifikaci parametru. Makub Moravec Jan wrote: Ahoj, Uz mi z toho jde hlava kolem a nemohu nalezt spravnou syntaxy. Mam statickou metodu: public static T T createMBeanProxy( String objectName, ClassT interfaceClass ) Pokud ji volam pro ziskani MBeanu jednoduchych (neparametrizovatelnych) typu, napriklad BusinessRegisterServiceMBean busRegMBean = ServiceLocator.createMBeanProxy( neco, BusinessRegisterServiceMBean.class ); neni problem. Pokud vsak ten interface (interfaceClass) je slozitejsiho typu, napriklad chci vratit instanci typu CacheServiceMBeanLong, ManagedLString, pak nemohu prijit na to, jakym zpusobem toho dosahnout, abych se vyhnul castovani. To jest: Toto funguje, ale warning o castu CacheServiceMBean na CacheServiceMBeanLong, ManagedLString: CacheServiceMBeanLong, ManagedLString cacheMBean = (CacheServiceMBeanLong, ManagedLString) ServiceLocator.createMBeanProxy( config.get( neco, CacheServiceMBean.class ); Ja chci zapis bez castu, tj. neco jako: CacheServiceMBeanLong, ManagedLString cacheMBean = ServiceLocator.createMBeanProxy( config.get( neco, CacheServiceMBean*Long, ManagedLString.*class ); Coz mi kompilator nesezere (nelibi se mu ten zapis CacheServiceMBean*Long, ManagedLString.*class). Diky za nakopnuti. Honza -- ~~ Supercomputing Center Brno Martin Kuba Institute of Computer Scienceemail: [EMAIL PROTECTED] Masaryk University http://www.ics.muni.cz/~makub/ Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775 --
RE: KeyStore implementace nad DB
Ja si porad nejsem jisty, ze mit KeyStore v blobu (at uz jeden, ci jeden per firma) je dobry reseni. Kdyz si predstavim, ze budu chtit zkontrolovat/updatovat neco v tomk keystoru a budu muset z DB nacist cely keystore blob prislusne firmy, pak ho standardni implementace KeyStore interne rozparsuje, pak z neho neco prectu/updatuji a nakonec to cele opet ulozim, jezi se mi trochu vlasy na hlave... Proc nemit KeyStore, ktery jede nad rozparsovanymi keystore zaznamy v DB? Odpada tim parsovaci krok, nepotrebuji v DB zamykat cely blob, ale jen updatovany zaznam pricemz k tomu keystoru mohu pristupovat pres standardni KeyStore API. BTW: Netusim, proc to KeyStore API Suni svazali s potrebou nacitat/ukladat keystore z/do streamu? To mi fakt neprijde jako dobry design. Je preci na me, kde chci Keystore mit, zda v DB, na karte, v souboru ci jinde. Jan Moravec -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Karel Tejnora Sent: Thursday, May 04, 2006 7:52 PM To: Java Subject: Re: KeyStore implementace nad DB A pouzit jdbm? Nebo jinou hash on disk DB?
RE: KeyStore implementace nad DB
To je presne, jak asi skoncim. Puvodne jsem se ptal, zda nekdo nezna/nepouziva takovou implementaci, abych to nemusel psat. Je mi skoro podezrele, ze nic hotoveho jsem nenasel. Diky, Jan Moravec -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Roman Pichlik Sent: Friday, May 05, 2006 9:45 AM To: Java Subject: Re: KeyStore implementace nad DB Moravec Jan napsal(a): Ja si porad nejsem jisty, ze mit KeyStore v blobu (at uz jeden, ci jeden per firma) je dobry reseni. Kdyz si predstavim, ze budu chtit zkontrolovat/updatovat neco v tomk keystoru a budu muset z DB nacist cely keystore blob prislusne firmy, pak ho standardni implementace KeyStore interne rozparsuje, pak z neho neco prectu/updatuji a nakonec to cele opet ulozim, jezi se mi trochu vlasy na hlave... tak si nad tou databazi udelejte vlastni programovou mezivrstvu, ktera bude klientum ten KS poskytovat a nebo bude realizovat vlastni business operace dej mi klic, dej mi certifikat apod. Pak je mozne udelat napriklad cacheovani nacteneho KS. -- S pozdravem Roman Dagi Pichlik /* http://www.sweb.cz/pichlik/ Blog pro kodery */ __ This email has been scanned by the MessageLabs Email Security System. For more information please visit http://www.messagelabs.com/email __
RE: KeyStore implementace nad DB
Dobry den, BouncyCastle znam a pouzivam, ale nevim o tom, ze by meli KeyStore nad DB. Pokud vim, maji pouzitelnyPKCS#12 nad souborem, ale topro me ucelynestaci, viz nize. Jan Moravec -Original Message-From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]On Behalf Of Martin KrajciSent: Wednesday, May 03, 2006 4:08 PMTo: JavaSubject: Re: KeyStore implementace nad DB Dobry den,mozno pomoze: http://www.bouncycastle.org/Martin Krajci On 5/3/06, Moravec Jan [EMAIL PROTECTED] wrote: Zdravim, Neznate nekdo jiz hotovou a pouzitelnou implementaci Javovskeho KeyStore nad databazi?V aplikaci potrebuji za behu generovat klice a certifikaty.Pouzivat standardniJKS/PKCS#12 implementace bezici nad souboremmi neprijdemoc pouzitelnes ohledem na konkurentni pristup uzivatelu, navic v klusteru. Implementovat nejakou zamykaci vrstvu nad tim souboremby byl spise zoufalyhack. Kupodivu jsem nic nevygoogloval i kdyz mi prijde, ze to je obecne dost pouzitelna funkcionalita. Diky, Honza-- Best regards,Martin Krajci
Taglib pro web controls
Zdravim, Chtel bych se zeptat, zdanekdo pouzivaterozumne vypadajici a snadno pouzitelnoutaglibpro vytvareni beznych webovych controlutypu tabbed list, tabulky se scrollovanim, stomy apod.). Idealne zdarma, nebo alespon pro vyvoj zdarma. Celkem se mi libiwww.common-controls.com, ale ta neni ani pro vyvoj zadarmo, stahnutelna verze je oklestena a licence jepro moje potrebyprilis draha... Dik za tipy. Honza
RE: Zajimava featura JVMka
Asi delam neco blbe (ale myslim, ze ne), ale pro Suni JDK 1.3, 1.4 i 1.5 (preklad i beh) dostavam konzistentne: Exception in thread main java.lang.ArrayStoreException at java.lang.System.arraycopy(Native Method) Coz mi dava smysl. Mimochodem jak je to uvedeny nize, tak to prekompilovat IMO nelze (javac u vsech zminovanych verzi rve na pokus priradit Object[] do String[] na radku s toArray() ktery vraci Object[] - musel jsem pridat cast na String[]). Jaky zvlastni chovani jsi vlastne zaznamenal a s jakou Javou? Honza -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Oto Buchta Sent: Tuesday, October 11, 2005 4:58 PM To: Java Subject: Zajimava featura JVMka Zdravim, prave jsem objevil zajimavou vlastnost JVMka: List list = nre ArrayList(); list.add(new URL(http://localhost/;)); list.add(new URL(file:///etc/passwd)); String[] pole = list.toArray(new String[list.size()]); pole[0] = (String) list.get(0); Samozrejme ze to lze prekompilovat. A co myslite, kdy by mela vyletet vyjimka? A budete se divit, ale lisi se to od verze Javy ;-) -- Oto 'tapik' Buchta, [EMAIL PROTECTED] Senior Engineer, Systinet Corp, http://www.systinet.com
wildcard certifikaty
Zdravim, Je to sice trochu off-topic, ale snad to bude zajimat vice lidi. Nemate nekdo tip na nejlevnejsi zpusob ziskani wildcard certifikatu (napr. *.mojedomena.cz). Musi to byt od nejake CA, ktera je trusted z pohledu rozsirenych browseru - IE, Mozila, Opera. Jinymi slovy nechci, aby uzivatele museli cokoli instalovat/potvrzovat! Certifikaty od Thawte a Verisign mi prijdou dost predrazeny. Diky moc, Honza