Re: moduly v aplikaci
OSGI je určitě svělá technologie, ale nepodceňujte inherentní složitost, kterou si tím zanesete do vlastní aplikace. My jsme šli cestou vlastní modularizace postavené nad aplikačními kontexty Springu (viz. http://blog.novoj.net/2007/09/08/serial-modularni-systemy-ve-spring-frameworku/), ale později vzniklo i open-sourcové řešení na podobném principu: http://code.google.com/p/impala/ Možná bych zkusil zvážit i toto. Dostanete za to čistou architekturu s minimálním overheadem navíc. Samozřejmě takových možností jako OSGII mít sice nebudete, ale ono je to někdy spíš na škodu mávat atomovkou tam, kde stačí AK-47 ;-) Honza -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura -- 2011/3/1 Tomas Hubalek > A proc kazda domena nema svuj war, ktery se zbuilduje podle konfigurace pro > danou domenu? > > Tom > > > -Original Message- > > From: konference-boun...@java.cz [mailto:konference-boun...@java.cz] On > Behalf > > Of Jiří Nápravník > > Sent: Tuesday, March 01, 2011 9:49 AM > > To: Java > > Subject: Re: moduly v aplikaci > > > > Ano preferoval bych Spring. > > > > Ted si to nedovedu uplne predstavit. Potrebuji to tak, ze to pobezi na > > ruznych domenach, ty nasmeruji na ten jeden dany server, a pro kazdou > > tu domenu bude ruzna konfigurace tech modulu. > > > > JN > > > > 2011/3/1 Ondrej Nekola : > > > Spring? > > > > > > A je nutne bezet vice instanci vedle sebe, nestacila by jedna, ktera > > > obsahuje veskerou funkcionalitu, ale poskytuje vice interfacu okoli? > > > > > > S pozdravem > > > Ondřej Nekola > > > > > > > > > > > > 2011/3/1 Jiří Nápravník : > > >> Zdravím, > > >> potřebuji udělat aplikaci, která bude co možná nejvíce modulární. > > >> Uvedu například CMS, bude třeba dodat anketa, tak se udělá modul > > >> ankety, který povolím a v adminu/frontendu se objeví tahle > > >> funkcionalita. > > >> > > >> A druhá věc, chtěl bych aby aplikace byla na jednom místě a běželo > > >> více instancí, přičemž každá instance by měla různé povolené moduly > > >> například přes kofigurační soubory. > > >> > > >> Můžete mi doporučit, co nastudovat? > > >> > > >> Díky > > >> Nápravník > > >> > > > > > > > > > > > -- > > Přeji pěkný zbytek dne > > Jiří Nápravník > > > > www.enbros.cz >
Re: Porovnání řetězců
Zkuste před porovnáním zavolat na obou String objektech intern() a vyjde druhý if jako true. Ale to jen abych vás navedl na vyjasnění si principu fungování stringu v Javě. Správně by se mělo porovnávat přes equals - s tím se nespalite. H. Dne 3.3.2011 17:34 "Tomas Pitner" napsal(a): > Ano, odpovedel jste si spravne. > > -- Tomas Pitner > > > > 2011/3/3 Libor Jelinek : >> Dobrý den! >> Dneska jsem se zarazil nad jedním problém ke kterému neumím nalést >> vysvětlení. Proto bych se chtěl tímto zeptat zkušenějších. Mám tento >> program: >> >> public class SchedulerLauncher { >> public static void main(String[] args) { >>if (args[0].equals("-h")) { // a) vyhodnoceno na true >>//if (args[0] == "-h") { // b) vyhodnoceno na false-proč? >>System.out.println("...sem prijde napoveda..."); >>} >>} >> } >> >> Ten spustím jako $ java SchedulerLauncher -h. Čekal bych, že obě podmínky a) >> i b) jsou rovnocené, ale jen ta a) s využitím String.equals() je se >> vyhodnotí jako pravda. Proč ne ta druhá? >> >> Tuším, že to bude jistě něco s "ukazateli" (promiňte mi ten výraz, vím v >> Javě nejsou). args[0] je vlastně reference na objekt String v paměti. A "-h" >> čili new String("-h") je též reference, ale na jiný objekt, byť textový >> obsah je stejný. Operátor == porovnává adresy (referrence), nikoli >> vlastnosti objektu. >> >> Vysvětluji si to správně? Díky. >> Libor >>
Groovy porovnání s NULL
Zdravím konferenci, dokážete mi někdo prosím vysvětlit proč Groovy pro snippet "null < 100" vrací true? Ukázka: http://groovyconsole.appspot.com/script/478001 Jsem Groovy lamka, ale tohle mě opravdu překvapilo. V plain java podobná věc hodí samozřejmě chybu. Tuším že bude nějaký problém v Null Groovy objektu - tj. že levá strana porovnání není braná jako číslo ... tohle už chybu (jak bych očekával hodí): ((int)null) < 100; Honza -------------- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: Groovy porovnání s NULL
Díky za vysvětlení ... já jsem tušil že to bude něco takového. Pro javistu je to krapátek překvapení. :( H. -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura -- Dne 6. května 2011 9:29 Robert Novotny napsal(a): > Null je typu NullObject a operatory porovnavania nikdy nehadzu > NullPointerException. Navyse plati, ze null je mensie nez akykolvek iny > objekt. > > Priamu zmienku v dokumentacii som nenasiel, ale v unit testoch existuje > CompareToTest.groovy, kde je ukazka: > >def a = 123 >def b = null > >def result = a <=> b >assert result > 0 > > Operator <=> je compareTo(). > > > On 6. 5. 2011 8:59, Ing. Jan Novotný wrote: > >> Zdravím konferenci, >> >> dokážete mi někdo prosím vysvětlit proč Groovy pro snippet "null < 100" >> vrací true? >> Ukázka: http://groovyconsole.appspot.com/script/478001 >> >> Jsem Groovy lamka, ale tohle mě opravdu překvapilo. V plain java podobná >> věc hodí samozřejmě chybu. Tuším že bude nějaký problém v Null Groovy >> objektu - tj. že levá strana porovnání není braná jako číslo ... tohle už >> chybu (jak bych očekával hodí): >> >> ((int)null) < 100; >> >> Honza >> -- >> Ing. Jan Novotný >> @@ >> http://blog.novoj.net >> Myšlenky dne otce Fura >> -- >> > >
Re: GWT+RPC+myBatis
Zdravím, já tedy nejsem žádný expert na GWT a jen trošičku na MyBatis. Zdá se mi divné, že ten svůj mapper instanciujete napřímo: contactDAO = new ContactDAO(); Obvykle používám MyBatis v kombinaci se Springem, kde je získání mapperu značně jednodušší, ale pro váš případ by měl platit tento postup uvedený v dokumentaci: SqlSession session = sqlSessionFactory.openSession(); try { BlogMapper mapper = session.getMapper(BlogMapper.class); Blog blog = mapper.selectBlog(101); } finally { session.close(); } Samozřejmě musíte získat referenci na SqlSessionFactory, což je také velmi hezky popsáno v dokumentaci. Doporučuji si projít: http://code.google.com/p/mybatis/downloads/detail?name=MyBatis-3-User-Guide.pdf ... je to opravdu velmi dobrá dokumentace a není ani moc obsáhlá. Tam určitě najdete řešení na své problémy. Možná by se vám taky mohly hodit moje příklady, které jsem použil na workshopu na CZJUGu (jsou tam funkční testy s nějakými komentáři): https://github.com/novoj/iBatisWorkShop Hezký večer, Honza -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura -- 2012/1/24 "Ing. Jiří Nováček" > Dobrý den, > > zkouším GWT (Google Web Toolkit) v kombinaci s myBatis. Dokážu rozběhat > GWT, dokážu použít RPC (Remote Procedure Calls) v GWT, dokážu rozběhat > myBatis, ale když se to potom pokusím spojit do jednoho, tak mi to > nefunguje. Jako vzorový projekt pro myBatis jsem si vzal toto: > http://loianegroner.com/2011/02/getting-started-with-ibatis-mybatis-xml-configuration/, > když to aplikuji na svůj projekt GWT s voláním RPC a uvnitř se pokusím > dostat něco z databáze, tak to nefunguje (soubor je v příloze). Když to > strčím mimo volání RPC, tak mi to funguje. Nejspíš někde dělám chybu, ale > už se s tím trápím hodně dlouho a nevidím to. > Jak mám vyřešit přístup do db. Ukázek jsem našel spousty, ale kompletní > příklad GWT+RPC+myBatis ani jeden (je to možné?). Přitom, když se v mém > projektu pokusím využít upravený vzorový příklad (soubor TestiBatis.java) > nevyužívající RPC, tak to funguje. Bez problémů čtu, zapisuji, mažu … . V > RPC přitom používám úplně stejný postup. Prosím o nějakou radu, ukázku, > odkaz na internet. > > Předem všem děkuji > Nováček >
Re: maven2
Doporučuji nasadit firemní Artifactory a máte po problémech. Je tam výborné web rozhraní, přes které si chybějící knihovnu velmi jednoduše a user-friendly přidáte. Více: http://blog.novoj.net/2007/03/14/artifactory-nahrada-maven-proxy/ Novoj 2007/6/18, Podlesak Kamil <[EMAIL PROTECTED]>: Zdravim, Davat knihovny rucne do repository ma (mimo jine) jednu zasadni nevyhodu: musi se to udelat na kazdem stroji znova pred kompilaci. Taktez u kazdeho noveho uzivatele... Ja osobne toto resim tak, ze si v projektu delam vlastni repository. Do pom se pak prida napriklad: local-security-providers bouncycastle file:${basedir}/repository Kamil "podlesh" Podlesak > -Original Message- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > Behalf Of Petr Burdik > Sent: Sunday, June 17, 2007 9:49 AM > To: Java > Subject: maven2 > > > Ahojte, > mam takovy problemek. Muj projekt zavisi na nekterych > knihovnach, ktere se > na codehouse ani ibiblio nenalezaji. Obzvlaste se jedna o > tyto knihovny: > javamail:mail:pom:1.3.3 > com.sun:ldapbp:pom:1.0 > > Problemek jsem vyresil jednoduse tim, ze jsem tyto knihovny > pridal do > repozitare rucne. Akorat ze pri kazdem deploy se je snazi > stahovat znovu z > ibiblio nebo codehouse. Jde tomu prosim nejak zabranit? Dost > me to zdrzuje. > > Pekny den > Pet > > -- > Using Opera's revolutionary e-mail client: http://www.opera.com/mail/ > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Zpětná kompatibilita Struts 1.3.X a 1.2.X
Zdravím konferenci, narazili jsme s kolegy na jeden zajímavý problém. Vše to začalo tímto stack trace: Servlet.service() for servlet action threw exception java.lang.NoSuchMethodError: org.apache.struts.action.ActionRedirect.addParameter (Ljava/lang/String;Ljava/lang/Object;)V at com.fg.webapp.cps.v1.frontend.cps.srv.APPLstoreCL.execute( APPLstoreCL.java:71) at org.apache.struts.chain.commands.servlet.ExecuteAction.execute( ExecuteAction.java:58) at org.apache.struts.chain.commands.AbstractExecuteAction.execute( AbstractExecuteAction.java:67) at org.apache.struts.chain.commands.ActionCommandBase.execute( ActionCommandBase.java:51) Jedná se o knihovnu CPS, která je kompilovaná v Java 1.4.X s knihovnou Struts 1.2.8. Chyba se projeví pokud takto zkompilovanou knihovnu CPS použiji v projektu kompilovaném s Javou 1.5 a přilinkovanou knihovnou Struts 1.3.8. Chyba se odstraní ve chvíli, kdy knihovnu CPS zkompiluji (stále s compilerem 1.4) s verzí Struts 1.3.8. Nicméně, knihovny Struts 1.2.X a 1.3.Xby měly být v daném místě kompatibilní - viz. Javadoc: http://struts.apache.org/1.2.7/api/org/apache/struts/action/ActionRedirect.html http://struts.apache.org/1.3.8/apidocs/org/apache/struts/action/ActionRedirect.html Tzn. naše knihovna CPS se dá beze změn zkompilovat jak se Struts 1.2.8, tak i 1.3.8 - co je zarážející, že se stejným JDK kompilace knihovny CPS s uvedenými verzemi vygeneruje binárně odlišný JAR. Nějak si tedy nedokážeme vysvětlit v čem je problém - protože se nám uvedená situace zdá naprosto ok, a měla by být pokrytá kontraktem zpětné kompatibility. Nenapadá vás někoho, kde by mohl být zakopaný pes? Ještě jedna možná zajímavá informace Struts 1.2.8 jsou kompilované s JDK 1.4, Struts 1.3.8 s JDK 1.5. Díky za nápady, Honza N. -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: Zpětná kompatibilita Struts 1.3.X a 1.2.X
Koukám, že pořekadlo "pro oči nevidí" platí. Studoval jsem především parametry a návratový typ jsem úspěšně přehlížel. Díky moc za prozaické vysvětlení :) Honza. N. 2007/7/9, Peter Stibrany <[EMAIL PROTECTED]>: Pohlad do tych JavaDocov hovori, ze addParameter v Struts 1.2.7 nema ziadnu navratovu hodnotu, zatialco v 1.3.8 vracia ActionRedirect. A nekompatibilita je na svete. -ps On 7/9/07, Ing. Jan Novotný <[EMAIL PROTECTED]> wrote: > Zdravím konferenci, > >narazili jsme s kolegy na jeden zajímavý problém. Vše to začalo tímto > stack trace: > > Servlet.service() for servlet action threw exception > java.lang.NoSuchMethodError: > org.apache.struts.action.ActionRedirect.addParameter (Ljava/lang/String;Ljava/lang/Object;)V > at > com.fg.webapp.cps.v1.frontend.cps.srv.APPLstoreCL.execute( APPLstoreCL.java:71) > at > org.apache.struts.chain.commands.servlet.ExecuteAction.execute( ExecuteAction.java:58) > at > org.apache.struts.chain.commands.AbstractExecuteAction.execute( AbstractExecuteAction.java:67) > at > org.apache.struts.chain.commands.ActionCommandBase.execute( ActionCommandBase.java:51) > >Jedná se o knihovnu CPS, která je kompilovaná v Java 1.4.X s knihovnou > Struts 1.2.8. Chyba se projeví pokud takto zkompilovanou knihovnu CPS > použiji v projektu kompilovaném s Javou 1.5 a přilinkovanou knihovnou Struts > 1.3.8. Chyba se odstraní ve chvíli, kdy knihovnu CPS zkompiluji (stále s > compilerem 1.4) s verzí Struts 1.3.8. Nicméně, knihovny Struts 1.2.X a 1.3.X > by měly být v daném místě kompatibilní - viz. Javadoc: > > > http://struts.apache.org/1.2.7/api/org/apache/struts/action/ActionRedirect.html > > http://struts.apache.org/1.3.8/apidocs/org/apache/struts/action/ActionRedirect.html > >Tzn. naše knihovna CPS se dá beze změn zkompilovat jak se Struts 1.2.8, > tak i 1.3.8 - co je zarážející, že se stejným JDK kompilace knihovny CPS s > uvedenými verzemi vygeneruje binárně odlišný JAR. >Nějak si tedy nedokážeme vysvětlit v čem je problém - protože se nám > uvedená situace zdá naprosto ok, a měla by být pokrytá kontraktem zpětné > kompatibility. Nenapadá vás někoho, kde by mohl být zakopaný pes? > > Ještě jedna možná zajímavá informace Struts 1.2.8 jsou kompilované s JDK > 1.4, Struts 1.3.8 s JDK 1.5. > > Díky za nápady, > Honza N. > > -- > -- > Ing. Jan Novotný > @@ > http://blog.novoj.net > Myšlenky dne otce Fura > -- -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: Zjisteni pracovnich dnu mezi 2 dny
Je to takové nehezké řešení (kéž by Java měla pro toto nějakou podporu), ale co jsem se zatím setkal (celkem asi 3 případy v mé praxi) - vždycky se to řešilo takto. Typicky už měl náš zákazník podobnou tabulku už připravenou pro jiné aplikace, takže jsme se jen napojili na existující data. Výhodou tohoto řešení navíc je, že si zákazník obhospodařuje dny volna sám, a když vyhlásí celozávodku není nic jednoduššího než přidat pár záznamů do podobné tabulky. Má to pod kontrolou a všechny jeho interní aplikace (pokud z této tabulky čerpají - jako že na tom zákazník vždy trval) se novému nastavení jednoduše přizpůsobí. Honza N. 25.7.07, "Ing. Radek Žuja" <[EMAIL PROTECTED]>: Asi se mnou nebude spousta lidí souhlasit ale úplně nejjednodušší je mít (pokud tedy jde o aplikaci s přístupem k databázi) mít někde tabulku datumů řekněme takovéto struktury datum datetime (PK) den tinyint (1-31) tyden tinyint (0-53) mesic tinyint (1-12) den_v_tydnu tinyint (1-7) svatek tinyint (1 -Ano, 0- ne) A pokud někdo potřebuje třeba ještě dekády, kvartály apod. Na plnění této tabulky si napsat proceduru, která to vygeneruje třeba na 10 let dopředu, Mít třeba pomocnou tabulku svátku, kterou ta procedura či trigger vezme v potaz. A pak to můžete do aplikace zjiˇšťovat jednoduchými selecty. V palikaci pak nemusíte řešit jestli je den_v tydnu 1 neděle, nebo pondělí. Jediné místo (a to opravdu jedinné), kde to budete řešit je ona plnicí procedura(trigger) Ta tabulka v DB moc místa nezabere, a funguuje to podle mě nejlépe. Radek Žuja PS: ty datové typy tinyint jsou se sybase. Je to jení nejmenší datový typ. Jde v podstatě o Byte. > Zdravim, > kouknul jsme se do googlu a nasel jsem tam jedno reseni v .NET. > Myslim, ze bych sel touto cestou. Sice to nebude nic zariveho, ale asi > to bude jistota. Uvedu zde onen kod: > > *** > CREATE function swsAdmin.fn_WorkingDays > ( >@FromDate datetime, >@ToDate datetime > ) > RETURNS int > with encryption > as > begin >if(@FromDate > @ToDate) > return 0 > >Declare @WorkingDays int >Set @WorkingDays = 0 > >while(@FromDate <= @ToDate) >begin >-- do not count SA & SU >if@@datefirst + datepart(weekday, @FromDate) - 2) % > 7) + 1) < 6) >begin >Set @WorkingDays = @WorkingDays + 1 >end > >-- add one day >Set @FromDate = @FromDate + 1 >end > >return @WorkingDays > end > > > Osobne bych jeste pridelal funkci, ktera by na argument typu Date(nebo > Calendar ... dle gusta) vracela, zda je pracovni ci ne. A nekde asi > udrzovat tabulku svatku > > > > Lukas Barton napsal(a): >> Ladislav Starý napsal(a): >>> Zdravim, >>> >>> nez zacnu vymyslet nejaky algoritmus, chtel bych se zeptat, jestli >>> se da nejakym elegantnim zpusobem zjistit pocet pracovnich dnu mezi >>> dvema kalendarnimi dny. >>> Pocet kalendarnich dnu jsem dokazal zjistit pomoci rozdilu >>> milisekund, ale jak to udelat s kalendarnimi dny, to me zatim nenapada. >>> >>> Zatim jsem uvazoval, ze bych postupne prochazel vsechny kalendarni >>> dny v tom intervalu a testoval, jestli je pracovni nebo ne. >>> Prijde mi ale hodne pomaly. Navic jeste budu muset resit statni svatky. >> Zjistit pocet pondeli-patku jde jeste vzoreckem. >> A pak musite mit nekde databazi svatbku a odecist, to co lezi mezi. >> Protoze pocet svatku se meni v case (napr. velikonoce, pridavaji se >> svatky nove, ). >> >> Lukas >> >> >> >> > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: Signifikantni rozdily v rychlosti aplikace vyvinujte pod NetBeans RCP pod JDK 1.6.0
No jo, jenže se mluvilo tuším o zrychlení v řádu do 20% - myslím na úrovni práce se synchronizovanými bloky (respektive zámky). A Tomáš mluví o zrychlení 1000%. Nějak se mi to nezdá ;). Honza 8.8.07, MaReK Olšavský <[EMAIL PROTECTED]>: > > Bodry den, > mel to Dagi i v jednom z poslednich podcastu, u Javy 6 je vykon jedna z > velkych zmen, ktere byly upraveny. Proste vyslyseli narky nekterych > uzivatelu (no znam jich dost, co tvrdili, ze to bylo moc ppoommaallee) a > optimalizovali. > > -- MaReK > - -- > > MaReK "Penguin" Olšavský > PHP Voodoo > private mail: [EMAIL PROTECTED] > private web: http://orsm.wz.cz > ICQ#: 160 178 925; MSN: [EMAIL PROTECTED]; Skype: Penguin_007 > tel.: +420-603-519-650; +420-775-154-689 (775-1-LINUX) > > Na stránce bylo napsáno: "Optimalizováno pro Explorer 5, nebo lepší". > Tak jsem přešel na Mozilla Firefox --> http://firefox.czilla.cz/ > > > Tomas Hubalek napsal(a): > > Zdar, > > > > mam tu jednu "zahadu", ktere nerozumim. Mame aplikaci do NetBeans > > platform, ktera vykazuje pomerne extremni rozdily v rychlosti, pokud > > stejny kod bezi pod JDK 1.5.0 a JDK 1.6.0. > > > > To co pod JDK 1.6.0 trva radove vteriny, trva v JDK 1.5.0 i desitky > vterin. > > > > Aplikace pouziva JAX WS 2.0 a NetBeans Platform 6 (teda cislem si nejsem > > presne jisty, ale je to ta, co jsou na ni postave NetBeans 5.5) jinak > > nic specialniho. > > > > Mate nekdo nejaky tip, jak to vysvetlit? > > > > Dik > > Tom > > > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: project management tools - build, test, code analysis, documentation
Ne, že bych s tím měl nějakou praktickou zkušenost, ale Maven myslím může být použit i na ne Java projekty - alespoň jeho defaultní struktura má např. "src/java", což mi evokuje pocit, že by mohlo být klidně i "src/php" třebas. Otázka zní, jak je to s podporou pluginů pro ne-java platformy. Honza 2007/8/22, [EMAIL PROTECTED] <[EMAIL PROTECTED]>: > > Stale hledam framework pro nejakou rozumnou spravu vetsich projektu (vic > modulu, vic technologii, nejednotna struktura) - sestavovani, testy, analyzy > kodu, dokumentace, verzovani. > > Znam: Ant, Maven, Ivy, Continuum > > Unikl mi nejaky zajimavy projekt? > > Diky D. :) > > PS: Nutna nezavislost na IDE. > > > > This message is for the designated recipient only and may contain > privileged, proprietary, or otherwise private information. If you have > received it in error, please notify the sender immediately and delete the > original. Any other use of the email by you is prohibited. > > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: project management tools - build, test, code analysis, documentation
No ani ne ;). Já to už dělal - zběsilá struktura orientovaná na ant = nic standardního. Chtěl jsem ve firmě prosadit maven, tak mi nezbylo, že chvíli jet na projektech, kde musel běžet paralelně starý antí způsob i ten můj nový. No a pak přesvědčovat, že ten můj nový způsob je lepší. Taky jsem si nejdřív říkal, co to dá práce - ale nakonec to bylo dost jednoduché. Faktem je, že ten ant měl pár targetů a výsledkem byl obvykle jeden WAR s pár přilinkovanými vlastními moduly typu JAR (plus hafo externích knihoven). Typicky stačí změnit cestu k resources, testResources + otunit maven-compiler-plugin, maven-surefire-plugin a maven-war-plugin a bylo. Nenarazil jsem na nic, co by se v pluginech nedalo nakonfigurovat. Takže rozhodně doporučuji to zkusit. Honza N. 2007/8/22, [EMAIL PROTECTED] <[EMAIL PROTECTED]>: > > Maven fajn .. ale pokud mam uz existujici projekt se zbesilou strukturou, > tak mi to moc nepomuze. Resp. musel bych to priohybat nevkusnym zpusobem. > Nebo se snad mylim? > > > > Od: [EMAIL PROTECTED] za uživatele Roman Pichlik > Odesláno: st 22.8.2007 13:14 > Komu: Java > Předmět: Re: project management tools - build, test, code > analysis,documentation > > > > urcite Maven. K tomu co umi Maven by jste dospel pomoci kombinace Ivy > (zavislsoti) + Ant (exekuce), ake kdo by to psal, kdyz mate Maven ;-). > > [EMAIL PROTECTED] napsal(a): > > Az takhle hrube jsem to nemyslel ;) ... nemyslel jsem ruzne programovaci > jazyky, ale ruzne technologie a frameworky kolem J2SE/J2EE. Omlouvam se / > polepsim se ;) > > > > _ > > > > Od: [EMAIL PROTECTED] za uživatele Petr Ferschmann > > Odesláno: st 22.8.2007 12:33 > > Komu: Java > > Předmět: Re: project management tools - build,test,code > analysis,documentation > > > > > > Zdravím, > > > > no, pokud myslíte víc technologií např.: Java a C/C++ tak to vám přeju > hodně štěstí :-) > > > > Pro C/C++ mám dobré zkušenosti s Autoconf/Automake a CMake (umí dělat > Makefile a Visual Studio projekty, pouštění testů). > > Pokud chcete do dražších sfér tak možná IBM Rational ClearCase. > > Pokud chcete něco jednotně tak bych doporučil Maven s tím, že např. > C/C++ se bude z Mavenu buildit něčím jiným (např. CMake). > > Také bychom asi neměli vynechat Microsoft Visual Studio Team System > (nebo jak se to vlastně teď jmenuje). > > > > Opravdu záleží na přesných podmínkách, o jaké technologie se jedná a co > od systému očekáváte. > > > > Pošlete seznam technologií, zda se jedná o různé projekty/jeden projekt > apod. > > > > Pokud se jedná o více různých technologíí nebránil bych se používat pro > každý typ projektu něco jiného. > > > > Petr > > > > [EMAIL PROTECTED] píše v St 22. 08. 2007 v 11:29 +0200: > > > > Stale hledam framework pro nejakou rozumnou spravu vetsich projektu (vic > modulu, vic technologii, nejednotna struktura) - sestavovani, testy, analyzy > kodu, dokumentace, verzovani. > > > > > > > > Znam: Ant, Maven, Ivy, Continuum > > > > > > > > Unikl mi nejaky zajimavy projekt? > > > > > > > > Diky D. :) > > > > > > > > PS: Nutna nezavislost na IDE. > > > > > > > > > > > > > > > > This message is for the designated recipient only and may contain > privileged, proprietary, or otherwise private information. If you have > received it in error, please notify the sender immediately and delete the > original. Any other use of the email by you is prohibited. > > > > Petr Ferschmann > > > > SoftEU s.r.o. > > > > --- > > > > Bolevecká 6 > > > > 301 00 Plzen > > > > Czech Republic > > > > --- > > > > Phone: +420 373 731 284 > > > >+420 373 729 300 > > > > Fax: +420 373 729 301 > > > > Cell: +420 775 638 008 > > > > E-mail: [EMAIL PROTECTED] > > > > > -- > S pozdravem Roman "Dagi" Pichlik > > /* http://www.sweb.cz/pichlik/ Blog pro kodery */ > > > > > This message is for the designated recipient only and may contain > privileged, proprietary, or otherwise private information. If you have > received it in error, please notify the sender immediately and delete the > original. Any other use of the email by you is prohibited. > > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: Mevenide2
Jen ve zkratce ... nemám čas smolit podrobnější odpověď, takže spíš jen nasměrování, kam byste se mohl kouknout Jarko budete mít typicky ve složce target ... toto lze redefinovat s pomocí konfigurace maven-jar-plugin Složku s knihovnami standardně maven nevytváří (jen u WARů) - všechny jary si totiž bere z vašeho lokálního repository. Možná bych kouknul na možnosti maven-dependency-plugin ... tam byste mohl najít něco použitelného pro váš problém. Honza N. 2007/9/10, [EMAIL PROTECTED] <[EMAIL PROTECTED]>: > > > Hi all, > > Pouzivate niekto v NB5.5 plugin pre Mavena Mevenide2 ( > http://mevenide.codehaus.org/m2-site/) ? > Dnes som si ho nainstaloval, vsetko mi beha ako ma, len neviem ako mam > teraz NB donutit aby mi vytvorila adresar DIST s JARkom projektu + s > podadresarom LIB, kde su vsetky potrebne JARka pre moje JARko > Pred Mavenom mi to pomocou ANTu NB robili > > Marian Stevlik (Michal) -- -------------- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: Mevenide2
JJ, to bude ono - viz: http://maven.apache.org/plugins/maven-assembly-plugin/howto.html Zapomeňte na to, co jsem vám radil já ;). Honza N. 2007/9/10, Podlesak Kamil <[EMAIL PROTECTED]>: > > Zdravím, > > K tomuto slouží (obecně) plugin assembly. > O Mevenide nic nevím, takže jak se to má dohromady rádo nepovím. > > Kamil Podlešák > > -Original Message- > *From:* [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > Behalf Of [EMAIL PROTECTED] > *Sent:* Monday, September 10, 2007 3:27 PM > *To:* konference@java.cz > *Subject:* Mevenide2 > > > Hi all, > > Pouzivate niekto v NB5.5 plugin pre Mavena Mevenide2 ( > http://mevenide.codehaus.org/m2-site/) ? > Dnes som si ho nainstaloval, vsetko mi beha ako ma, len neviem ako mam > teraz NB donutit aby mi vytvorila adresar DIST s JARkom projektu + s > podadresarom LIB, kde su vsetky potrebne JARka pre moje JARko > Pred Mavenom mi to pomocou ANTu NB robili > > Marian Stevlik (Michal) > > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: JAVA a AJAX framework
Řekl bych, že je ještě poměrně důležitá otázka jestli chcete nechat tomu frameworku kompletní kontrolu nad renderováním nebo ten AJAX má sloužit pouze k doplnění nějaké funkcionality do layoutu, který chcete mít pod kontrolou vy. Já jsem došel k závěru, že frameworky jako GWT nebo Echo2 jsou prostě kompletní řešení pro prezentační vrstvu. Dávají vám jasná pravidla, se kterými moc nehnete a kterým se musíte přizpůsobit. DWR naopak je velmi volné ... nechá vás na prezentační vrstvě vyrobit cokoliv a jednoduše se do toho integruje. Pravda je, že některé věci si potom na klientovi zase musíte dořešit sám. Proto se často kombinuje DWR ještě s něčím - třebas jQuery. viz. http://blog.novoj.net/2007/05/19/neni-ajax-jako-ajax/ a také http://vavru.cz/java/dwr-ajax-knihovna-pro-remotovani-java-objektu/ Vzhledem k tomu, že naše společnost se soustředí na internetové prezentace a GUI je šité na míru našimi grafiky, nenašel jsem pro GWT uplatnění. Nejlepší řešení pro můj účel se mi zdá právě kombinace DWR plus jQuery. Což ovšem neznamená, že to je ideální řešení pro jakýkoliv účel a cílovou aplikaci. Honza N. 2007/10/16, Ivan Polák <[EMAIL PROTECTED]>: > Vsetkym dakujem za uzitocne rady, co ma prekvapilo, je ze google web toolkit > sa tu neobjavil. > > Este raz vdaka > > Ivan > > > -Original Message- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On > Behalf Of Lahoda Vladimír > Sent: Monday, October 15, 2007 9:32 PM > To: Java > Subject: Re: JAVA a AJAX framework > > Z těch, co uvádíte, se mi jako "swingařovi" nejvíc líbí Echo2. > Myslím, že ještě lepší je ale Thinwire - používá stejný princip jako > Echo2, ale je dotaženější. Ze stejného soudku určitě stojí za > pozornost Eclipse RAP, zatím nepoužitelně pomalý, ale díky silnému > zázemí Eclipse se nejspíš výrazně prosadí. No a pak je tu ještě > komerční IT Mill, opět se stejným trikem, nezkoušel jsem ho ale zatím. > Vláďa > > On 15.10.2007, at 16:43, Ivan Polák wrote: > > > Mam otazku , podla Vas ktory AJAX framework je najvhodnejsi pre > > pouzitie s JAVA + Spring. DWH, Echo2, google web toolkit ? jedna sa > > o intranetovu web aplikaciu. > > > > > > > > Dakujem > > > > > > > > Ivan > > > > > > > > > > > __ Informacia od NOD32 2305 (20070601) __ > > Tato sprava bola preverena antivirusovym systemom NOD32. > http://www.eset.sk > > > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: Prezentace JPA na CZJUG
Ano, mám ji doma - Martin mi ji posílal na vyžádání. Ideálně asi napište přímo jemu - jeho email, by se měl někde v konferenci nacházet. Ne že bych vám nechtěl pomoct, ale přeci jen to není můj výtvor, tak nechci rozšiřovat něco, co mi nepatří. Honza N. 23.10.07, Pavel Zelenka <[EMAIL PROTECTED]>: > > Zdravím, > > nemáte někdo tu demo aplikaci Martina Krajčího, kterou ukazoval na CZJUGu > 31.1.2007 při prezentaci JPA? > > Díky > > Pavel Zelenka > -- ------------------ Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: synchr. z CVS jako planovana uloha
Řada konfliktů se eliminuje zavedením integračního serveru (pokud ho ještě nemáte) - namátkou třebas Continuum, TeamCity atd.. Ten po každém commitu provede checkout a spustí další úlohy, dle vašeho přání (compile, testy atd.). Plno věcí se vyřeší už jen zavedením téhle věci, plus zavedením pravidelného commitování (commit, je něco, jako když si jdete večer vyčistit zuby). Tyhle dvě pravidla nám vyřešila lecos ... Honza N. 7.11.07, [EMAIL PROTECTED] <[EMAIL PROTECTED]>: > Dobry den, > > potreboval bych pod OS windows najit CVS klienta ktery by sel nastavit tak ze > kdyz by byl spusten jako planovana uloha windowsu > tak by provedl synchronizaci naseho projektu na jednotlive vyvojarska PC. > Tato cinnost by probihala pres noc a rano by > kazdy clen tymu mel k dispozici svuj workspace a vedle toho workspace > synchronizovany pres noc. Takze pak neresime zadne konflikty a je na vyvojari > jaky workspace se rozhodne pouzit. Kazde rano nam tak pul hodiny az hodinu > trva synchronizace, navic mame v tymu vice novacku a casu je tak (jako vzdy) > malo. > > z CVSko pouzivam jen ve forme pluginu v eclipse a rad si necham poradit a > nasmerovat co by me pozadavky splnilo. > > Diky za reakce > > -- ------------------ Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: log4j: nacteni log file
S tímhle appenderem pozor ... přímo na log4j se dočtete, že ho nedoporučují pro provozní prostředí. Myslím, že při vysoce paralelním přístupu blokuje nebo tak podobně. V 1.3 verzi log4j už mají appender, který se dá napojit na DataSource, který pak už může být poolovaný. Jenže, když jsem se to snažil zprovoznit já asi před rokem, tak jsem zjistil, že jim to moc nefunguje (i když chyba mohla být klidně v OC4J). Každopádně se to dalo nějak zprovoznit. Honza 15.11.07, Stöhr Miroslav RNDr. Ph.D. <[EMAIL PROTECTED]>: > No, do budoucnosti určitě ano. Ale ty log soubory už existují, já je musím > procházet zpětně. > > Mirek > > > -Original Message- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Martin Kuba > Sent: Thursday, November 15, 2007 11:48 AM > To: Java > Subject: Re: log4j: nacteni log file > > Logovat primo do dabataze, aby odpadlo zapsani do souboru a opetovne nacteni > souboru ? > > http://logging.apache.org/log4j/companions/receivers/apidocs/org/apache/log4j/db/DBAppender.html > > Makub > > Stöhr Miroslav RNDr. Ph.D. napsal(a): > > A odpovím si sám: > > http://logging.apache.org/log4j/companions/receivers/apidocs/index.htm > > l > > > > Snad se to nekomu nekdy bude hodit. Nicmene pokud mate lepsi napady, > > sem s nimi :-)) > > > > Mirek > > > > -Original Message- > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Stöhr > > Miroslav RNDr. Ph.D. > > Sent: Thursday, November 15, 2007 8:48 AM > > To: Java > > Subject: log4j: nacteni log file > > > > Vazeni kolegove, > > > > vyskytl se mi nasledujici problem: Potreboval bych nacist log soubory > > (log4j, verze 1.2). Jejich struktura je vice mene klasicka, vznikla > > konfiguraci stylu > > > > log4j.appender.Appender_stdout.layout.ConversionPattern=%5p %t %-16c > > > %m%n > > > > (toto je priklad, pro kazdy z log souboru je to ruzne, ale zname). > > > > No a ja bych tyto log soubory potreboval nacist do db, tj. potrebuji si > > vytvorit nejaky vhodny nastroj ktery mi z log souboru postupne cte > > jednotlive log eventy a pak uz to bude jednodussi. > > > > Urcite neco takoveho uz existuje. Mohl by jste me nekdo nasmerovat prosim? > > Dekuji. > > > > > > Mirek Stöhr > > > > > -- > ~~ > 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 > -- > > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: log4j: nacteni log file
Na prohlížení jsme používali http://logging.apache.org/chainsaw/index.html ale myslím, že to stále není to, co vy hledáte. Honza N. 15.11.07, Stöhr Miroslav RNDr. Ph.D. <[EMAIL PROTECTED]>: > No, do budoucnosti určitě ano. Ale ty log soubory už existují, já je musím > procházet zpětně. > > Mirek > > > -Original Message- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Martin Kuba > Sent: Thursday, November 15, 2007 11:48 AM > To: Java > Subject: Re: log4j: nacteni log file > > Logovat primo do dabataze, aby odpadlo zapsani do souboru a opetovne nacteni > souboru ? > > http://logging.apache.org/log4j/companions/receivers/apidocs/org/apache/log4j/db/DBAppender.html > > Makub > > Stöhr Miroslav RNDr. Ph.D. napsal(a): > > A odpovím si sám: > > http://logging.apache.org/log4j/companions/receivers/apidocs/index.htm > > l > > > > Snad se to nekomu nekdy bude hodit. Nicmene pokud mate lepsi napady, > > sem s nimi :-)) > > > > Mirek > > > > -Original Message- > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Stöhr > > Miroslav RNDr. Ph.D. > > Sent: Thursday, November 15, 2007 8:48 AM > > To: Java > > Subject: log4j: nacteni log file > > > > Vazeni kolegove, > > > > vyskytl se mi nasledujici problem: Potreboval bych nacist log soubory > > (log4j, verze 1.2). Jejich struktura je vice mene klasicka, vznikla > > konfiguraci stylu > > > > log4j.appender.Appender_stdout.layout.ConversionPattern=%5p %t %-16c > > > %m%n > > > > (toto je priklad, pro kazdy z log souboru je to ruzne, ale zname). > > > > No a ja bych tyto log soubory potreboval nacist do db, tj. potrebuji si > > vytvorit nejaky vhodny nastroj ktery mi z log souboru postupne cte > > jednotlive log eventy a pak uz to bude jednodussi. > > > > Urcite neco takoveho uz existuje. Mohl by jste me nekdo nasmerovat prosim? > > Dekuji. > > > > > > Mirek Stöhr > > > > > -- > ~~ > 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 > -- > > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
IllegalAccessException při pokusu přístupu na getter Enumu reflexí
Zdravím konferenci, dokážete někdo vysvětlit proč při přístupu k metodám Java enum typu, který mám definován takto: public enum QueryStatus implements HasValue { INSERTED { public Integer getValue() { return 0; } public String getLabel() { return "vloženo"; } }, ALLOWED { public Integer getValue() { return 1; } public String getLabel() { return "schváleno"; } }, FORBIDDEN { public Integer getValue() { return 2; } public String getLabel() { return "zamítnuto"; } } } vyhazuje java IllegalAccessException? Podaří se mi získat i object Method pro danou getter metodu, ale když se zavolá metoda invoke, vyletí vyjímka IllegalAccessException. Nějak se mi nepodařilo nic vygůglit, tak si nedokážu vysvětlit, kde je problém. Honza N. -- -------------- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: IllegalAccessException při poku su přístupu na getter Enumu reflexí
No já na to narazil, kdy jsem se ve Stripes snažil použít tag který k přistupuje k datům objektů přes gettery reflexí. Zkusil jsem to obejít a napsal jsem si iteraci sám přes JSP EL, takto: ${status.label} a kupodivu to funguje. Přitom bych si myslel, že JSP EL bude dělat úplně to samé a na stejný getter taky půjde přes reflexi. Tak si nedokážu vysvětlit proč to v JSP EL funguje a Stripsům přes reflexi ne. Tzn. vyřešení toho problému mě ani tak nepálí (mám dobrý workaround), ale spíš jen zajímá - jak je to možné?! Honza 2007/11/26, Ondřej Fafejta <[EMAIL PROTECTED]>: > Ing. Jan Novotný napsal(a): > > Zdravím konferenci, > > > >dokážete někdo vysvětlit proč při přístupu k metodám Java enum > > typu, který mám definován takto: > > > > public enum QueryStatus implements HasValue { > > INSERTED { > > public Integer getValue() { return 0; } > > public String getLabel() { return "vloženo"; } > > }, > > ALLOWED { > > public Integer getValue() { return 1; } > > public String getLabel() { return "schváleno"; } > > }, > > FORBIDDEN { > > public Integer getValue() { return 2; } > > public String getLabel() { return "zamítnuto"; } > > } > > } > > > >vyhazuje java IllegalAccessException? Podaří se mi získat i object > > Method pro danou getter metodu, ale když se zavolá metoda invoke, > > vyletí vyjímka IllegalAccessException. Nějak se mi nepodařilo nic > > vygůglit, tak si nedokážu vysvětlit, kde je problém. > > > > Honza N. > > > > > Co třeba to napsat takto? > > public enum QueryStatus implements HasValue { > > INSERTED(0, "vlozeno"), > ALLOWED(1, "schvaleno"), > FORBIDDEN(2, "zamitnuto"); > > private Integer value; > private String label; > > private QueryStatus(Integer value, String label) { > this.value = value; > this.label = label; > } > > public Integer getValue() { > return value; > } > > public String getLabel() { > return label; > } > > public static QueryStatus findQueryStatusByValue(Integer value) { > if (value == null) { > return QueryStatus.FORBIDDEN; > } > for (QueryStatus qs : QueryStatus.values()) { > if (qs.equals(value)) { > return qs; > } > } > return QueryStatus.FORBIDDEN; > } > } > > Dokonce je možné napsat statickou metodu, která podle zadaného parametru > value vrátí přímo výčtový typ. > viz. metoda > public static QueryStatus findQueryStatusByValue(Integer value); > > Fafi > > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: IllegalAccessException pri poku su prístupu na getter Enumu reflexí
Díky za nakopnutí, tohle se trefilo do černého - alespoň co se týká zdůvodnění. Když jsem v debug režimu manuálně nastavil metodě setAccessible(true), už invoke() prošlo bez chyby a vrátilo to, co mělo. Bohužel doplnění abstraktní metody do QueryStatus nepomohlo a bez setAccessible(true) se k danému getteru nedostanu - pro úplnost uvádím aktualizovanou třídu: public enum QueryStatus implements HasValue { INSERTED { public Integer getValue() { return 0; } public String getLabel() { return "vloženo"; } }, ALLOWED { public Integer getValue() { return 1; } public String getLabel() { return "schváleno"; } }, FORBIDDEN { public Integer getValue() { return 2; } public String getLabel() { return "zamítnuto"; } }; public abstract String getLabel(); } Navíc jsem objevil, že Stripes mají tag u kterého jsem si myslel, že bude natvrdo nastavováno setAccessible, ale není tomu tak - padá to na IllegalAccess také. Zkusím ještě popátrat na gůglu. Honza N. 2007/11/26, Podlesak Kamil <[EMAIL PROTECTED]>: > > Myslim ze bude stacit doplnit deklaraci tech metod v samotne tride > QueryStatus (jako abstraktni metody). > > > public enum QueryStatus implements HasValue { > > INSERTED { > > public Integer getValue() { return 0; } > > public String getLabel() { return "vloženo"; } > > }, > > ALLOWED { > > public Integer getValue() { return 1; } > > public String getLabel() { return "schváleno"; } > > }, > > FORBIDDEN { > > public Integer getValue() { return 2; } > > public String getLabel() { return "zamítnuto"; } > > } > > public abstract Integer getValue(); > public abstract String getLabel(); > > } > > Jednotlive instance jsou neverejne tridy, tedy je normalne nelze pouzivat a > nelze ani volat metody v nich deklarovane. Tato omezeni se za normalnich > okolnosti kontroluji i pri pouzivani reflection, ale kontrolu lze vypnout > zavolanim method.setAccessible(true). Nektere knihovny pouzivajicich > reflection toto delaji, coz vysvetluje proc se v nich tento problem neobjevi > (zatimco v jinych ano). > > Kamil Podlesak > -- > [EMAIL PROTECTED] > > > > -Original Message- > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > > Behalf Of Ing. Jan Novotný > > Sent: Monday, November 26, 2007 1:58 PM > > To: Java > > Subject: IllegalAccessException pri pokusu prístupu na getter Enumu > > reflexí > > > > > > Zdravím konferenci, > > > >dokážete někdo vysvětlit proč při přístupu k metodám Java enum > > typu, který mám definován takto: > > > > public enum QueryStatus implements HasValue { > > INSERTED { > > public Integer getValue() { return 0; } > > public String getLabel() { return "vloženo"; } > > }, > > ALLOWED { > > public Integer getValue() { return 1; } > > public String getLabel() { return "schváleno"; } > > }, > > FORBIDDEN { > > public Integer getValue() { return 2; } > > public String getLabel() { return "zamítnuto"; } > > } > > } > > > >vyhazuje java IllegalAccessException? Podaří se mi získat i object > > Method pro danou getter metodu, ale když se zavolá metoda invoke, > > vyletí vyjímka IllegalAccessException. Nějak se mi nepodařilo nic > > vygůglit, tak si nedokážu vysvětlit, kde je problém. > > > > Honza N. > > > > -- > > -- > > Ing. Jan Novotný > > @@ > > http://blog.novoj.net > > Myšlenky dne otce Fura > > -- > > > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: IllegalAccessException při poku su přístupu na getter Enumu reflexí
Díky za tip, v současné podobě to mám také tak, aby mi to chodilo. Stejnak mi ale v hlavě vrtá ten skutečný důvod pro IllegalAccessException. Honza N. 26.11.07, Ondřej Fafejta <[EMAIL PROTECTED]>: > Zdravím Vás! > > Ve stripes jsme to řešili podobným způsobem: > > v action beanu máme metodu > public List getPosibleMyStatusEnums(){ > > Samozřejmě, že k tomu musíte mít konvertor > public class MyStatusEnumConverter implements TypeConverter{ > > Ve stripes to pak vypadá následovně: > > > collection="${actionBean.posibleMyStatusEnums}" label="label" > value="status" /> > > > v našem výčtovém typu máme metody > > getLabel() a getStatus(). > > Fafi > > > Ing. Jan Novotný napsal(a): > > No já na to narazil, kdy jsem se ve Stripes snažil použít tag > > > > > > > > který k přistupuje k datům objektů přes gettery reflexí. Zkusil jsem > > to obejít a napsal jsem si iteraci sám přes JSP EL, takto: > > > > > > > > > >> value="${status.value}">${status.label} > > > > > > > > a kupodivu to funguje. Přitom bych si myslel, že JSP EL bude dělat > > úplně to samé a na stejný getter taky půjde přes reflexi. Tak si > > nedokážu vysvětlit proč to v JSP EL funguje a Stripsům přes reflexi > > ne. > > > > Tzn. vyřešení toho problému mě ani tak nepálí (mám dobrý workaround), > > ale spíš jen zajímá - jak je to možné?! > > > > Honza > > > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: IllegalAccessException pri poku su prístupu na getter Enumu reflexí
Používá se tam logika z java.beans.* - konkrétně: BeanInfo info = Introspector.getBeanInfo(clazz); PropertyDescriptor[] descriptors = info.getPropertyDescriptors(); pak se podle name najde jeden konkrétní PropertyDescriptor a pak už: Method m = pd.getReadMethod(); if (m != null) { return m.invoke(bean); } Tzn. logika získávání objektů Method je skrytá uvnitř Javy. Nicméně problém bude asi v tom, že class name je: class com.fg.xxx.model.QueryStatus$1, což se vztahuje již k té podřízené třídě. Problém bude tedy se získáváním toho className. A ten se získává na základě itemu z dané kolekce, kde kolekci získám jednoduše: Arrays.asList(QueryStatus.values()); Stripsy začnou iterovat po itemech z této kolekce a nad každým si zavolají: Type type = this.bean.getClass(); Pak získají nacachované PropertyDescriptory - viz. začátek emailu a ty už vrací "virtuální" classy pro jednotlivé enum QueryStatus classy. Takže problém je již osvětlený, ale stejně mi nějak nedochází jak z toho ven. Je mi jasné, že se potřebuju dostat k tomu, aby className = "class com.fg.xxx.model.QueryStatus", ale netuším jak to zařídit. Honza N. 2007/11/26, Jiri Mares <[EMAIL PROTECTED]>: > > A co se podivat do zdrojaku jak je to udelany ... > > Podlesak Kamil napsal(a): > > Zajímavé, abstraktní metody musí fungovat... jak tu instanci Method > > získáváte? > > getMethod() nebo getDeclaredMethod()? Důležité je, že se musí jednat o > > metodu z předka, nikoliv z potomka (interní třídy). > > > > Kamil Podlešák > > > >> -Original Message----- > >> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > >> Behalf Of Ing. Jan Novotný > >> Sent: Monday, November 26, 2007 2:53 PM > >> To: Java > >> Subject: Re: IllegalAccessException pri pokusu prístupu na > >> getter Enumu > >> reflexí > >> > >> > >> Díky za nakopnutí, tohle se trefilo do černého - alespoň co se týká > >> zdůvodnění. Když jsem v debug režimu manuálně nastavil metodě > >> setAccessible(true), už invoke() prošlo bez chyby a vrátilo to, co > >> mělo. Bohužel doplnění abstraktní metody do QueryStatus nepomohlo a > >> bez setAccessible(true) se k danému getteru nedostanu - pro úplnost > >> uvádím aktualizovanou třídu: > >> > >> public enum QueryStatus implements HasValue { > >> INSERTED { > >> public Integer getValue() { return 0; } > >> public String getLabel() { return "vloženo"; } > >> }, > >> ALLOWED { > >> public Integer getValue() { return 1; } > >> public String getLabel() { return "schváleno"; } > >> }, > >> FORBIDDEN { > >> public Integer getValue() { return 2; } > >> public String getLabel() { return "zamítnuto"; } > >> }; > >> > >> public abstract String getLabel(); > >> > >> } > >> > >> Navíc jsem objevil, že Stripes mají tag > >> u kterého jsem si myslel, že bude natvrdo nastavováno setAccessible, > >> ale není tomu tak - padá to na IllegalAccess také. > >> > >> Zkusím ještě popátrat na gůglu. > >> > >> Honza N. > >> > >> 2007/11/26, Podlesak Kamil <[EMAIL PROTECTED]>: > >>> Myslim ze bude stacit doplnit deklaraci tech metod v > >> samotne tride QueryStatus (jako abstraktni metody). > >>>> public enum QueryStatus implements HasValue { > >>>> INSERTED { > >>>> public Integer getValue() { return 0; } > >>>> public String getLabel() { return "vloženo"; } > >>>> }, > >>>> ALLOWED { > >>>> public Integer getValue() { return 1; } > >>>> public String getLabel() { return "schváleno"; } > >>>> }, > >>>> FORBIDDEN { > >>>> public Integer getValue() { return 2; } > >>>> public String getLabel() { return "zamítnuto"; } > >>>> } > >>> public abstract Integer getValue(); > >>> public abstract String getLabel(); > >>>> } > >>> Jednotlive instance jsou neverejne tridy, tedy je normalne > >> nelze pouzivat a nelze ani volat metody v nich deklarovane. > >> Tato omezeni se za normalnich okolnosti kontroluji i pri > >> pouzivani reflection, ale kontrolu lze vypnout zavolanim > >> method
Re: IllegalAccessException při poku su přístupu na getter Enumu reflexí
:D chtěl jsem si ušetřit práci. Aplikace nemá žádné požadavky na lokalizaci a chtěl jsem mít možnost i jednoduše napsat kdekoliv v JSP ${query.status.label}. Co se týká pořadí - value ukládám jako int do databáze a nezdá se mi vhodné propojovat pořadí deklarace enumu v classe s id ukládaným do databáze. Jinak samozřejmě chápu argumenty, které jsi tu uvedl. V daném případě bych problémy neměl - nicméně jsou to problémy docela zajímavé, dost jsem se v posledních mailech dozvěděl o fungování enumů v Javě. Honza N. 26.11.07, Martin Kuba <[EMAIL PROTECTED]>: > Možná mi něco uniklo, ale proč je to nutné pro Stripes udělat ? > > Všechny typy enum dědí z java.lang.Enum, a pole pro pořadové číslo už mají, > takže: > > package cz.makub; > > public enum Obdobi { > JARO, LETO, PODZIM, ZIMA; > > public static void main(String[] args) { > for(Obdobi o : Obdobi.values()) { > System.out.println(o.name()+" "+o.ordinal()); > } > } > } > > vypíše > > JARO 0 > LETO 1 > PODZIM 2 > ZIMA 3 > > a pokud se jedná o zobrazení lokalizovaných nápisů, tak to Stripes > řeší přes ResourceBundle, takže do StripesResources_cs.properties > stačí dopsat > > Obdobi.JARO=jaro > Obdobi.LETO=léto > Obdobi.PODZIM=podzim > Obdobi.ZIMA=zima > > a pro ostatní jazyky příslušné překlady. Pak stačí mít v JSP > > > > > > a zobrazí se to pěkně ve správném jazyce. > > Makub > > Ondřej Fafejta napsal(a): > > Zdravím Vás! > > > > Ve stripes jsme to řešili podobným způsobem: > > > > v action beanu máme metodu > > public List getPosibleMyStatusEnums(){ > > > > Samozřejmě, že k tomu musíte mít konvertor > > public class MyStatusEnumConverter implements TypeConverter{ > > > > Ve stripes to pak vypadá následovně: > > > > > > > collection="${actionBean.posibleMyStatusEnums}" label="label" > > value="status" /> > > > > > > v našem výčtovém typu máme metody > > > > getLabel() a getStatus(). > > > > Fafi > > > > -- > ~~ > 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 > -- > > > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: IllegalAccessException pri poku su prístupu na getter Enumu reflexí
JJ v interfacu HasValue je metoda getValue a zkušebně tam mám i metodu getLabel: public interface HasValue { public Integer getValue(); public String getLabel(); } Jak říkám, teoreticky s tím problém nemám - jen si to musím oiterovat sám pomocí JSTL + JSP EL. Jen mě zarazilo, že vyhořel ten tag stripsů a zajímalo mě proč. Kód, který provádí tu reflexi samozřejmě pod kontrolou nemám, takže nějaké další opracování (setAccessible nebo iterace přes předky) nepřichází v úvahu. Každopádně díky všem za názory - už v tom mám jasněji. Honza N. 2007/11/26, Josef Cacek <[EMAIL PROTECTED]>: > Ahojte, > > On Nov 26, 2007 4:15 PM, Podlesak Kamil <[EMAIL PROTECTED]> wrote: > > > > abstraktni metody fungovat nemusi. Problem je v tom, ze jednotlive > > > prvky jsou v enumu reprezentovany anonymnimi tridami - tzn. maji > > > nastaveny default access (package protected). > > > > Jiste, to je to co jsem psal (resp. minil). > > A prave proto jsem navrhoval verejne abstaktni metody (public abstract) > > primo v samotnem enumu (tj. ve verejnem predkovi tech anonymnich metod). Ty > > pak samozrejme lze volat odkudkoliv, protoze deklarace je verejna (public) > > ve verejne tride (public). Minimalne to nevadi kompilatoru, s reflexi jsem > > si, priznavam, moc nehral. > > No prave, ona tam vadi ta reflexe (i v pripade, ze u predka jsou > abstraktni metody public), protoze nastroje jako beanutils volaji > nejakou variaci kodu, ktery jsem tu uvedl. > > > > instance.getClass().getMethod("getNeco",null).invoke(instance,null); > > Otazkou je, proc tam nepouziji to setAccessible(). > > Abstrakce v nasem prikladu neni nutna, protoze predpokladam, ze v > interfecu HasValue, ktery to implementovalo, bude uvedena metoda > getValue(). > > Z tohoto pohledu funguje bezproblemove konstrukce: > HasValue.class.getMethod("getValue", null).invoke(instance, null); > > V tomto pripade uz se mi ale nevyplati pouzivat reflexi a tu metodu > bych mel volat primo. > ((HasValue) instance).getValue(); > > Nejkorektnejsi by asi bylo podivat se na Classu predka, jestli vraci > isAccessible() == true a v tom pripade ho pouzit pri volani invoke: > > instance.getClass().getEnclosingClass().getMethod("getValue", > null).invoke(instance, null); > > > Kamil Podlesak > > -- pepa cacek > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Netbeans jako jednoduchý XML editor?
Zdravím, hledáme pro naše webaře jednoduchý XML editor, kterým by mohli pohodlně editovat XML konfigurační soubory, které pro ně naši javisti připravují. Atributy editoru, které hledáme jsou: - zdarma - podpora DTD, XSD - code completion - code coloring - jednoduchý k použití - malý footprint - není nutné nic extra dodělávat Napadlo mě vyzkoušet ořezané Netbeansy - a zrovinka dneska vyšla ta šestka ... Výsledek zkoušení mě však moc nepotěšil. Standardní IDE není možné použít jen pro editaci XML souborů - musel by se vytvářet Java projekt. Také jsem narazil na chyby při stahování XSD (zkoušel jsem to na http://maven.apache.org/maven-v4_0_0.xsd). Neřešil už někdo problém jednoduchého XML editoru na Netbeans platformě? Přeci nejsem jediný, kdo toto řeší ... ale Google mlčí :( Díky za reakce. Honza N. -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: Netbeans jako jednoduchý XML editor?
Pravda, pravda ... já si takhle zkusil otevřít už existující pom.xml abych vyzkoušel code completion - což mi nefungovalo. Spojil jsem si to s tím, že si IDEčko potřebuje zapsat informaci o XSD do svých projektových souborů - nenabízel mi totiž v takto otevřeném XML code completion i když informace o XSD byla správně zapsaná (funkce Validate XML zafungovala dle očekávání). Je to tedy jenom chyba? Nebo co je zapotřebí k code completion? IntelliJ Idea mi v případě, že nezná XSD nabídne stažení (Fetch external resource) podle informací v xsi:schemaLocation - NetBeans nic nenabídlo, ale taky necodecompletuje :(. Neexistuje nějaký lightweight bundle pro editaci XML a HTML postavený na Netbeans platformě? Aby se člověk, který se zabývá pouze webem nemusel zabývat funkcemi orientovanými na Java vývoj? Díky - a sorry, pokud jsou otázky hodně blbé. Já s Netbeansy pracoval naposledy před rokem a to jako s kompletní distribucí na Java vývoj. Honza N. 3.12.07, Roman Strobl <[EMAIL PROTECTED]>: > Ing. Jan Novotný wrote: > > Výsledek zkoušení mě však moc nepotěšil. Standardní IDE není možné > > použít jen pro editaci XML souborů - musel by se vytvářet Java > > projekt. > Dovolim si nesouhlasit. Lze otevrit libovolny XML soubor bez Java > projektu. Staci otevrit okno Favorites (Window | Favorites) a pridat > adresar na disku a pak soubor otevrit. > > -Roman > -- -------------- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: Netbeans jako jednoduchý XML editor?
Díky za tip, vyzkouším. 3.12.07, Pavel Savara <[EMAIL PROTECTED]>: > Co treba zkusit jedit (http://www.jedit.org/) a jeho plugin pro xml. > Ale nezkousel jsem takze nevim co presne to umi. > > > The XML plugin (version 2) provides a tree structure browser for > editing XML, HTML, CSS and JavaScript files, and completion for XML, > HTML and CSS. > > Matching tag actions, pretty-printing, graphical editing of tag > attributes and conversion of special characters to entities and vice > versa is supported for both XML and HTML files. > > XML files are validated against their DTD or XSD, and the element tree > is shown in a dockable window. Validation errors are shown in the > Error List. > > Palko > > On 03/12/2007, Ing. Jan Novotný <[EMAIL PROTECTED]> wrote: > > Zdravím, > > > >hledáme pro naše webaře jednoduchý XML editor, kterým by mohli > > pohodlně editovat XML konfigurační soubory, které pro ně naši javisti > > připravují. Atributy editoru, které hledáme jsou: > > > > - zdarma > > - podpora DTD, XSD > > - code completion > > - code coloring > > - jednoduchý k použití > > - malý footprint > > - není nutné nic extra dodělávat > > > > Napadlo mě vyzkoušet ořezané Netbeansy - a zrovinka dneska vyšla ta > > šestka ... > > Výsledek zkoušení mě však moc nepotěšil. Standardní IDE není možné > > použít jen pro editaci XML souborů - musel by se vytvářet Java > > projekt. Také jsem narazil na chyby při stahování XSD (zkoušel jsem to > > na http://maven.apache.org/maven-v4_0_0.xsd). Neřešil už někdo problém > > jednoduchého XML editoru na Netbeans platformě? Přeci nejsem jediný, > > kdo toto řeší ... ale Google mlčí :( > > Díky za reakce. > > > > Honza N. > > > > -- > > -- > > Ing. Jan Novotný > > @@@@@@@@@@@@@@ > > http://blog.novoj.net > > Myšlenky dne otce Fura > > -- > > > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: Netbeans jako jednoduchý XML editor?
XML Mind znám - ten je skvělý na docbook. Ale jednak pro vlastní XSD už se musí kupovat licence a jednak je spíš než na programátora orientovaný na jiné uživatele. Ideální je používat jej v kombinaci s předpřipravenými CSS pro XSD. To není tak úplně ten typ XML editoru, který hledám. Ale díky za reakci. Honza N. 4.12.07, Martin Beránek <[EMAIL PROTECTED]>: > Dne Monday 03 of December 2007 22:05:24 Ing. Jan Novotný napsal(a): > > Zdravím, > > > >hledáme pro naše webaře jednoduchý XML editor, kterým by mohli > > pohodlně editovat XML konfigurační soubory, které pro ně naši javisti > > připravují. Atributy editoru, které hledáme jsou: > > > > - zdarma > > - podpora DTD, XSD > > - code completion > > - code coloring > > - jednoduchý k použití > > - malý footprint > > - není nutné nic extra dodělávat > > > > Napadlo mě vyzkoušet ořezané Netbeansy - a zrovinka dneska vyšla ta > > šestka ... Výsledek zkoušení mě však moc nepotěšil. Standardní IDE není > > možné použít jen pro editaci XML souborů - musel by se vytvářet Java > > projekt. Také jsem narazil na chyby při stahování XSD (zkoušel jsem to > > na http://maven.apache.org/maven-v4_0_0.xsd). Neřešil už někdo problém > > jednoduchého XML editoru na Netbeans platformě? Přeci nejsem jediný, > > kdo toto řeší ... ale Google mlčí :( > > Díky za reakce. > > > > Honza N. > > za vyzkouseni by taky mohl stat XMLmind (http://www.xmlmind.com/xmleditor/) > > -- > Martin Beránek > ICZ a.s., Pobočka Brno > mailto:[EMAIL PROTECTED] > http://www.i.cz > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: Vyroba sestavy v Excelu
No při větším nasazení (jaké vy popisujete) bych už možná skutečně uvažoval o JasperReports. Když jsem ale dělal jeden nebo dva XLS exporty, tak jsem si prostě v Excelu vytvořil XLS soubor jako šablonu a na konkrétní políčka jsem si nadefinoval "názvy" (menu - > Vložit -> Název -> Definovat) a pak jsem jen v Javě pomocí POI otevřel tento soubor, daná políčka vyplnil daty a nabídl jej ke stáhnutí uživateli. Takovéto šablony byly i rozumě odolné proti změnám, když se udržovala ta pojmenovaná pole. Navíc výsledný excel byl graficky slušně úpravný, jelikož návrh se dělal přímo v něm. Ale na masivní práce s velkým množstvím různých exportů je to i tak asi docela dost pracné ... Honza N. 2007/12/10, Stepan Novacek <[EMAIL PROTECTED]>: > Zkuste JasperReports - snadno se s tim pracuje, ma to kvalitniho > grafickeho navrhare iReport a taky zvlada export do XLS > > Stepan Novacek > > > Jan Dvořák napsal(a): > > Ahoj, > > > > zkoumam moznosti, jak v javove aplikaci na serveru vyrabet sestavy, > > ktere by si uzivatele stahli a otevreli v Excelu. Zatim sice jen > > tabulky, ale nepochybuji o tom, ze zacnou chtit i grafiky. Rysuji se > > mi tri mozne pristupy: > > > > 1. Jakarta POI - rucne si sestavu "sestavovat" v javovem kodu. To > > vypada jako dost pracne, ale zase je vcelku dobra kontrola nad tim, co > > vznikne. > > > > 2. Eclipse BIRT - "klikaci" navrhar sestav. Od verze 2.2 udajne umi > > delat vystupy do formatu XLS. Akorat se mi nedari najit, jak se to > > dela. :-( > > > > 3. zapojit OpenOffice v "bezhlavem" (headless) rezimu - mit pripraveny > > sesit s dotazy, ten programove otevrit, dat mu pokyn, at se obnovi z > > databaze, posleze jej ulozit a odeslat. > > > > Ruznych druhu sestav budou do budoucna desitky. Mnozina uzivatelu je > > omezena, rychlost generovani neni prilis vyznamnym kriteriem. Chtel > > bych vsak minimalizovat slozitost udrzby. > > > > Co si o tom myslite? > > > > Honza > > > > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: spring, odeslani formulare
Co takhle v servletu zavolat getOutputStream().close(), otázka je, zda tam už web server nestihne něco zapsat ... ale myslím, že by neměl. No každopádně bych to zkusil ;) Honza 12.12.07, Vladimír Náprstek <[EMAIL PROTECTED]>: > Zdravim, > mam jeden takovy problemecek. Potrebuji z formulare poslat data, ale uz > nechci, aby mi server (spring) odpovedel. Pripadne, aby odpoved "se > nekde ztratila". Nejak nevim, z ktereho konce na to jit... > > -- > > > s pozdravem > > Vladimír Náprstek > -- ------------------ Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: spring, odeslani formulare
Jo máte s Dagim pravdu ... mě nejdřív nedošlo, proč to Vláďa N. asi chce. Moje rada by vedla akorát ke krásné bílé obrazovce, což asi rozhodně nebylo záměrem ;). Honza N. 12.12.07, Lukas Barton <[EMAIL PROTECTED]>: > > To asi nepomuze, protoze stejne se nevratite ven z prislusne metody v > servletu. > > Na serveru proste zpracujte data z klienta asynchronne, napr. pomoci JMS a > MDB. > > Lukas > > > Ing. Jan Novotný wrote: > Co takhle v servletu zavolat getOutputStream().close(), otázka je, zda > tam už web server nestihne něco zapsat ... ale myslím, že by neměl. No > každopádně bych to zkusil ;) > > Honza > > 12.12.07, Vladimír Náprstek <[EMAIL PROTECTED]>: > > > Zdravim, > mam jeden takovy problemecek. Potrebuji z formulare poslat data, ale uz > nechci, aby mi server (spring) odpovedel. Pripadne, aby odpoved "se > nekde ztratila". Nejak nevim, z ktereho konce na to jit... > > -- > > > s pozdravem > > Vladimír Náprstek > > > > > > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: Spring + Acegi a ClassNotFoundException
Tyhle classpath problémy se přes konferenci těžko řeší. Zkoušel jste v deploynuté verzi fyzicky tu classu najít? Když se mi stalo něco podobného, vždycky to bylo nějakým zmatkem (např. dvě různé verze stejného jaru na classpath apod.) Honza N. 2008/1/9, Ivan Polák <[EMAIL PROTECTED]>: > zdravim konferenciu, > > chcel som pouzit vo svojom projekte Spring a Acegi, ked som "vkladal" > Acegi presne podla navodu narazil som na nasledovnu chybu: > > v subore application-acegi.xml mam: > > class="com.house.dao.HibernateAuthenticationDao"> > > > > class="org.acegisecurity.providers.dao.DaoAuthenticationProvider"> > > > > > > > class="org.acegisecurity.providers.ProviderManager"> > > > > > > > > Trieda com.house.dao.HibernateAuthenticationDao vyzera nasledovne: > > package com.house.dao; > import org.springframework.dao.DataAccessException; > import org.acegisecurity.userdetails.UserDetails; > import org.acegisecurity.userdetails.UserDetailsService; > import org.acegisecurity.userdetails.UsernameNotFoundException; > import com.house.model.User; > import com.house.service.UserManager; > > public class HibernateAuthenticationDao implements UserDetailsService { > > private UserManager userManager; > > public void setUserManager(UserManager userManager) { > this.UserManager = userManager; > } > > public UserManager getUserManager() { > return userManager; > } > > public UserDetails loadUserByUsername(String username) throws > UsernameNotFoundException, DataAccessException { > . > } > } > > trieda sa bez problemov prekompiluje, napriek tomu dostavam nasledovnu > chybu: > > 2008-01-08 21:16:33,568 ERROR ContextLoader - Context initialization failed > org.springframework.beans.factory.CannotLoadBeanClassException: Cannot > find class [com.house.dao.HibernateAuthenticationDao] for bean with name > 'hibernateAuthenticationDao' defined in class path resource > [applicationContext-acegi.xml]; nested exception is > java.lang.ClassNotFoundException: com.house.dao.HibernateAuthenticationDao > at > org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1160) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:581) > > > skontroloval som preklepy, je nejaka specialna poziadavka ako ma vyzerat > bean , ked je prekompilovany a aj napriek tomu Spring pise ze ju nevie > najst ?, pretoze okrem tohoto mam v aplikacii asi 100 definicii > a tam je vsetko OK. > > dakujem > > Ivan > > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: Spring + Acegi a ClassNotFoundException
Co takhle si hodit breakpoint na AbstractBeanFactory.java:1160 a zkusit si tam inspectnout: this.getClass().getClassLoader().loadClass("com.house.dao.HibernateAuthenticationDao") to vám ale akorát potvrdí, že spring tu classu na classpath nevidí. Pak bych zkusil podobným způsobem najít jinou classu na podobném umístění. Prostě se pokusit ten problém nějak zůžit. Honza N. 2008/1/9, Ivan Polák <[EMAIL PROTECTED]>: > fyzicky sa samozrejme ten subor nachadza tam kde sa ma: > /classes/com/house/dao/HibernateAuthenticationDao.class > > co sa tyka viacerych verzii jar-u nejakeho produktu, to som tiez > kontroloval, ale toto je subor projektu, nie je to trieda z nejakej > kniznice. > > terazec HibernateAuthenticationDao som nenasiel niekde inde v projekte, > len v suboroch: > > application-acegi.xml > HibernateAuthenticationDao.class > > takze dufam ze sa ten nazov nebije s niecim inym. > > Ivan > > Ing. Jan Novotný wrote / napísal(a): > > Tyhle classpath problémy se přes konferenci těžko řeší. Zkoušel jste v > > deploynuté verzi fyzicky tu classu najít? Když se mi stalo něco > > podobného, vždycky to bylo nějakým zmatkem (např. dvě různé verze > > stejného jaru na classpath apod.) > > > > Honza N. > > > > 2008/1/9, Ivan Polák <[EMAIL PROTECTED]>: > > > >> zdravim konferenciu, > >> > >> chcel som pouzit vo svojom projekte Spring a Acegi, ked som "vkladal" > >> Acegi presne podla navodu narazil som na nasledovnu chybu: > >> > >> v subore application-acegi.xml mam: > >> > >> >> class="com.house.dao.HibernateAuthenticationDao"> > >> > >> > >> > >> >> class="org.acegisecurity.providers.dao.DaoAuthenticationProvider"> > >> > >> > >> > >> > >> > >> > >> >> class="org.acegisecurity.providers.ProviderManager"> > >> > >> > >> > >> > >> > >> > >> > >> Trieda com.house.dao.HibernateAuthenticationDao vyzera nasledovne: > >> > >> package com.house.dao; > >> import org.springframework.dao.DataAccessException; > >> import org.acegisecurity.userdetails.UserDetails; > >> import org.acegisecurity.userdetails.UserDetailsService; > >> import org.acegisecurity.userdetails.UsernameNotFoundException; > >> import com.house.model.User; > >> import com.house.service.UserManager; > >> > >> public class HibernateAuthenticationDao implements UserDetailsService { > >> > >> private UserManager userManager; > >> > >> public void setUserManager(UserManager userManager) { > >> this.UserManager = userManager; > >> } > >> > >> public UserManager getUserManager() { > >> return userManager; > >> } > >> > >> public UserDetails loadUserByUsername(String username) throws > >> UsernameNotFoundException, DataAccessException { > >> . > >> } > >> } > >> > >> trieda sa bez problemov prekompiluje, napriek tomu dostavam nasledovnu > >> chybu: > >> > >> 2008-01-08 21:16:33,568 ERROR ContextLoader - Context initialization failed > >> org.springframework.beans.factory.CannotLoadBeanClassException: Cannot > >> find class [com.house.dao.HibernateAuthenticationDao] for bean with name > >> 'hibernateAuthenticationDao' defined in class path resource > >> [applicationContext-acegi.xml]; nested exception is > >> java.lang.ClassNotFoundException: com.house.dao.HibernateAuthenticationDao > >> at > >> org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1160) > >> at > >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:581) > >> > >> > >> skontroloval som preklepy, je nejaka specialna poziadavka ako ma vyzerat > >> bean , ked je prekompilovany a aj napriek tomu Spring pise ze ju nevie > >> najst ?, pretoze okrem tohoto mam v aplikacii asi 100 definicii > >> a tam je vsetko OK. > >> > >> dakujem > >> > >> Ivan > >> > >> > >> > > > > > > > > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: Spring + Acegi a ClassNotFoundException
Skoro bych si tipnul, že díky atributu default-lazy-init="true" se vám ta beana vůbec nevytvořila a k chybě dojde pravděpodobně až když si na tu beanu (nebo jinou beanu, která se danou beanu odkazuje) šáhnete. Schválně to zkuste ... Honza N. 2008/1/9, Ivan Polák <[EMAIL PROTECTED]>: > Dobry den, > > aby som odstranil moznost problemov s IDE, teraz to kompilujem pomocou > build.xml skriptu a ANT. > > java je 1.5.0 a pouzivam tomcat 6.0.14 > > povodne som mal v subore applicationContext-acegi.xml iba a > zmenil som to na: > > http://www.springframework.org/schema/beans"; >xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; >xsi:schemaLocation="http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"; >default-lazy-init="true"> > > a uz tam ta chyba nie je, neviem ci toto ma vplyv, pretoze uz fakt > skusam vsetko ? > > Ivan > > Karel Tejnora wrote / napísal(a): > > Zdravim, > > > > muzete nam popsat v cem kompilujete (verze + binary kompatible) a na > > jakem apl serveru to deployujete (verze javy)? Popr. je to exploded nebo > > packed? > > > > Podobne problemy mam nekdy pokud se neschoduji verze jaky vyvojoveho > > prostredi (myeclipse) a apl serveru i kdyz tak class tam je zda "ze neni > > v classes kdyz ji hleda spring". > > > > Ing. Jan Novotný píše v St 09. 01. 2008 v 10:18 +0100: > > > >> Co takhle si hodit breakpoint na AbstractBeanFactory.java:1160 > >> a zkusit si tam inspectnout: > >> this.getClass().getClassLoader().loadClass("com.house.dao.HibernateAuthenticationDao") > >> > > ... > > > > > > > > __ Informacia od NOD32 2549 (20070925) __ > > > > Tato sprava bola preverena antivirusovym systemom NOD32. > > http://www.eset.sk > > > > > > > > > > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: Acegi security
V předkovi třídy AuthenticationProcessingFilter je deklarována metoda: protected void onSuccessfulAuthentication(HttpServletRequest request, HttpServletResponse response, Authentication authResult) throws IOException {} Ta má vše co potřebujete. Udělal bych tedy potomka AuthenticationProcessingFilter, přepsal výše zmíněnou metodu a IP adresu si uložil. Pokud byste si ji chtěl ukládat přímo do objektu Authentication, který je přístupný přes security kontext, možná bych zvažoval rozšíření metody: /** * Provided so that subclasses may configure what is put into the authentication request's details * property. * * @param request that an authentication request is being created for * @param authRequest the authentication request object that should have its details set */ protected void setDetails(HttpServletRequest request, UsernamePasswordAuthenticationToken authRequest) { authRequest.setDetails(authenticationDetailsSource.buildDetails(request)); } Více určitě objevíte ve zdrojácích Acegi ;-) Honza N. 23.1.08, Tomas Vojtech <[EMAIL PROTECTED]>: > ahoj, > v metode doFilter se vola metoda attemptAuthentication, kdyz neprojde > autentizace tak by se mela vyhodit vyjimka, kdyz projde tak ta metoda > vrati object Authentication, takze asi poupravit doFilter, berte to ale > s rezervou, nemam to nijak podlozene, jenom sem se ted dival do kodu > toho filtru > > Tomas > > radovan deka wrote: > > Ahoj, rozhodl jsem se zkusit pouzit Acegi security na autentizaci > > uzivatelu. Autentizace funguje ok, jen nevim jak vyresit pozadavek na > > ulozeni IP adresy uzivatele a cas, pri kazde uspesne autentizaci. > > > > Vygooglil sem, ze je potreba rozsirit tridu AuthenticationProcessingFilter, > > ale nevim, jak v teto tride poznam, jestli autentizace byla uspesna. > > > > Pak sem jeste narazil na moznost vytvorit listenera, ktery implementuje > > ApplicationListener. V tomto pripde by nebyl problem ulozit ten cas, ale > > zas nevim jak zjistit IP adresu. > > > > __ Information from ESET Smart Security, version of virus signature > > database 2815 (20080122) __ > > > > The message was checked by ESET Smart Security. > > > > http://www.eset.com > > > > > > > > > > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: Acegi a ' uhodnutá' adresa
Toho může být docela dost, každopádně byste měl mít v chainu filtrů nakonfigurovaný "authenticationProcessingFilter" odkazující se na class org.acegisecurity.ui.webapp.AuthenticationProcessingFilter, dále "filterInvocationInterceptor" s třídou org.acegisecurity.intercept.web.FilterSecurityInterceptor a nbakonec "exceptionTranslationFilter" s třídou org.acegisecurity.ui.ExceptionTranslationFilter. Prvně jsmenovaný filtr zajišťuje, že se zalogujete v případě že zadáte v přihlašovacím formuláři uživatelské údaje. Druhý filtr zajišťuje, že pokud přistupujete na chráněný resource (nakonfigurováno v definitionSourceMaintainer) a nejste přihlášený (v SecurityContextu není objekt Authentication) budete vyhozena exception, kterou zpracuje třetí jmenovaný filtr a přesměruje uživatele na přihlašovací stránku. u mě konfigurace vypadá následovně: Bean je v konfiguraci samozřejmě víc, ale uvedl jsem jen ty základní. Filtry musí být uvedeny v tomto pořadí v základním delegating filtru, aby správně fungovaly. Honza N. 2008/1/23, [EMAIL PROTECTED] <[EMAIL PROTECTED]>: > > Máme malou webovou aplikaci používající Spring. > Po jednoduchém přihlášení přidáváme atribut 'user' do session a pro > neoprávněný > přístup (uhádnutí adresy) máme na každé jsp (kromě loginu) tento kód > > > > > > No a teď jsme začali používat Acegi - zadařilo se a můžeme používat na jsp > stránkách > značky. > > Ale bohužel teď použití 'uhodnuté' adresy bez přihlášení jde do chyby: > > org.acegisecurity.AuthenticationCredentialsNotFoundException: > An Authentication object was not found in the SecurityContext > at org.acegisecurity.intercept.AbstractSecurityInterc > eptor.credentialsNotFound(AbstractSecurityIntercep tor.java:375) > at org.acegisecurity.intercept.AbstractSecurityInterc > eptor.beforeInvocation(AbstractSecurityInterceptor .java:288) > at org.acegisecurity.intercept.web.FilterSecurityInte > rceptor.invoke(FilterSecurityInterceptor.java:104) > at org.acegisecurity.intercept.web.FilterSecurityInte > rceptor.doFilter(FilterSecurityInterceptor.java:72 ) > at org.acegisecurity.util.FilterChainProxy$VirtualFil > terChain.doFilter(FilterChainProxy.java:275) > ........... > > Netušíte, co může chybět v konfiguračním xml ? > > Díky. -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: persistence
Ahoj, jestli ti vadí komplexnost a neprůhlednost Hibernate (což se ani nedivím) a tlačí tě čas, zkus zvážit iBatis (http://ibatis.apache.org/). Zajímavé informace o rozdílu mezi JPA like frameworky (Hibernate, Toplink) a ostatními jsou třeba v diskusi k Dagiho článku: http://www.haloscan.com/comments/dagi/1487532516827250446/ Pravda je, že s iBatisem se napíšeš o něco víc, ale dostaněš se do něj asi za půl dne, používáš staré dobré vyladěné SQL, princip je tak jednoduchý, že nikdy neztratíš kontrolu a nikdy tě nemile nepřekvapí. Něco málo o iBatisu je i tady (jen takové rychlé overview): http://blog.novoj.net/2007/05/08/ibatis-sqlmaps-tak-trochu-opomijeny-orm/ Honza N. 26.2.08, Arne <[EMAIL PROTECTED]>: > No tak přece jen něco. Schválně jsem napsal trošku provokativní odpověď, > protože se do odpovědi nikomu nechce. > > O POJO už jsem zavadil, jenže z těch kusých poznámek co jsem vygooglil > (strašné slovo) jsem jistil, že to s tím souvisí. Jenže když o tom člověk nic > neví, tak je někdy těžké z kusých informací, kdy se někdo k něčemu vyjadřuje > a návaznosti na NECO - většinou změť zkratek, které mi ještě nic neříkají, > tak je hodně těžké se v tom orientovat. > Nakonec jsem našel alespoň jakýs takýs zestručněný (a nepřehledný) tutorial > k toplinku. > > O hibernate se hovořilo pouze v souvislosti s webem, takže vřelé díky za > informaci co k tomu patří, konečně snad vím, co mám hledat. > Ovšem asi bude lepší se naučit jedno. Bohužel nevím, jestli to co podporuje > NetBeans, tj.oracle.toplink je to nejlepší. > > Je to jak říkáte, že je potřeba myslel objektově, ale když člověka tlačí > čas, tak bližší košile než kabát :--). A tohle studium "novinek" vypadá ještě > na dlouho. > > Překvapuje mě, že ne trhu není žádná rozumná kniha, která by tyhle "novinky" > postihla. Pokud jsem koukal poslední dobou do toho co je na pultech, tak mi > připadá, že ti lidi to od sebe opisují a největší novinka je java v1.2. O > anotacích když tak zmínka, že to existuje. > Neví někdo o něčem ? > > Angličtina není až tak velký problém, jak to, že je těch informací na netu > tolik, že je strašně časově náročné dostat se přes balast k relevantní > informaci. V době elektroniky je na tom stejně z hlediska informovanosti > nejlépe ten, kdo má možnost s nějakým jiným odborníkem u kafe konzultovat > problémy z očí do očí a od tužky k tužce :). > > Ještě jednou díky za nasměrování! > > Arne > > > Původní zpráva > > Od: Karel Tejnora <[EMAIL PROTECTED]> > > Předmět: Re: persistence > > > Datum: 26.2.2008 14:05:27 > > > > > > > PS: toplink neznam, ale doufam ze sem nikoho neuvedl v omyl a pokud se > > mylim rad se poucim. Tak prosim nemumlejte si pod vousy a napiste > > opravy. > > > > > > > > > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: maven - build profiles
Řekl bych že by mělo stačit prosté filtrování resourců - viz. http://maven.apache.org/guides/getting-started/index.html#How_do_I_filter_resource_files Tzn. v log4j.properties / xml dát pouze ${LOG_LEVEL} a v property mavenu v daném profilu si tuto property nastavovat. H. 11.4.08, Vladimír Náprstek <[EMAIL PROTECTED]>: > Zdravím, > dostal jsem se do další fáze poznávání funkcí mavenu a narazil jsem na > jednu věc, kterou bych rád vyřešil. Při buildování aplikace bych rád > automatizoval kus konfigurace (např. logování: DEBUG pro devel server, > INFO pro production server). Našel jsem, že k tomu by měly být vhodné > profily. Jen jsem nenašel způsob, jak proměnnou z profilu v pom.xml > dostat do log4j.properties (například). > > Poradíte mi, prosím? > > > > -- > s pozdravem > > Vladimír Náprstek > E-mail : [EMAIL PROTECTED] > > > -- ---------- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: TestCase a test exception
No v tom případě by mohla být ještě chyba v Mavenu - respektive v maven-surefire-pluginu. Jakou verzi používáte? V IDE se to chová správně (jde ještě o to jaké IDE máte ...)? H. 2008/4/18, Vladimír Náprstek <[EMAIL PROTECTED]>: > V pom.xml mám: > > junit > junit > 4.4 > test > > > takže jsem přesvědčen, že používám správnou verzi. > > Roman Pichlik píše v Čt 17. 04. 2008 v 16:49 +0200: > > > A poustite to se spravnou verzi jUnitu, nemate nahodou pro kompilaci > > novejsi verzi a pro spusteni se pouzije nejake 3.x verze? > > > > > > kdyztak > > > > try { > >report.setReport(null); > >fail("Expected execption not thrown."); > > } catch (final IndexOutOfBoundException e) {/*expected*/ } > > > > 2008/4/17 Jozef Babjak <[EMAIL PROTECTED]>: > > > Nestacia stare dobre sposoby: > > > > > > public void testNull() { > > >try { > > > report.setReport(null); > > >} catch (final IndexOutOfBoundException e) { > > > // yes, this is expected > > >return; > > >} > > >fail("Expected execption not thrown."); > > > } > > > > > > alebo nieco podobne? > > > > > > Btw, ocakaval by som ze volanie something(null); vyhod > > > IllegalArgumentException, v krajnom pripade NullPointerException. :-) > > > > > > J. > > > > > > > > > > > > > > > > > > On Thu, Apr 17, 2008 at 2:41 PM, Vladimír Náprstek > > > <[EMAIL PROTECTED]> wrote: > > > > Zdravím, > > > > potřebuji v testu ověřit, že se mi skutečně vyhazují výjimky, tak > jsem > > > > hledal a našel: > > > > > > > > @org.junit.Test (expected=IndexOutOfBoundsException.class) > > > > public void testNull() { > > > >report.setReport(null); > > > > } > > > > > > > > metoda report.setReport(null) má vyhodit IndexOutOfBoundsException. > > > > Skutečně to i udělá. Očekával jsem ale, že test projde jako OK. Ale > ne, > > > > hlásí mi to, že vznikla IndexOutOfBoundsException. Takže asi dělám > něco > > > > špatně > > > > > > > > > > > > -- > > > > s pozdravem > > > > > > > > Vladimír Náprstek > > > > E-mail : [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > > > -- > s pozdravem > > Vladimír Náprstek > E-mail : [EMAIL PROTECTED] > > > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: Testovací vs produkční databáze
Buď je možné buildovat odlišné artefakty pro různé stroje (např. přes profily v Mavenu) a nebo pokud byste chtěl mít stejný artefakt pro různé stroje je možné to dělat např. tak, že při inicializaci se budou nahrávat data z properties (nebo z XML, to už je jedno) souborů, obsahující konfiguraci pro různé stroje. Property soubory mohou být buď na disku nabo na classpath. Odlišení toho, že na testovacím prostředí se nahraje jeden property soubor s konfiguračními daty a na ostré jiný je možné zajistit buď odlišením přes parametr javy (při spouštění javy dodat na commandline např. -Dinstance=test a potom System.getProperty("test")) a nebo můžete jako odlišovací String použít název stroje, na kterém je aplikace spuštěná tímto kódem: InetAddress addr = InetAddress.getLocalHost(); String thisMachineName = addr.getHostName(); Doufám, že odpovídám na to, na co jste se ptal. Už párkrát se mi stalo, že jsem byl trochu "mimo" :-) S pozdravem, Honza Novotný 2008/4/25 Pavel Zelenka <[EMAIL PROTECTED]>: > > Zdravím, > > vyvvíjím webovou aplikaci (JSF, JPA, Tomcat). Pro vývoj a testy potřebuji > používat testovací databázi. Po deploymentu na produkční server potřebuji, > aby aplikace používala již ostrou databázi. > Jak toto řešíte v praxi? > > Díky > > Pavel Zelenka > -- -------------- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: iBatis, konfigurace DaoManageru
Zdravím, nepoužívám iBatis způsobem, kterým jste popsal - používám jej v kombinaci se Springem, takže možná moje odpovědi nebudou stoprocentní, ale: ad 1) přístup do více databází se standardně řeší více SqlMapClienty - což by mohla být obdoba instance DaoManageru, pokud potřebujete do více databází současně v selectech, mělo by se dát v SQL jednoduše prefixovat název tabulky názvem databáze, kde tato tabulka leží (samozřejmě databáze musí běžet ve stejné DB instanci) ad 2) iBator jsem nikdy nepoužil, ale přiložený stacktrace odpovídá chybě v iBatis konfigurace - pravděpodobně chybí nějaký include statement, na který se vo konfiguraci odkazujete Chtěl jsem se zeptat - proč používáte DaoManager? Marně jsem hledal odkaz ve standardní dokumentaci iBatisu na tento objekt a našel jsem jen článek na OnJava. Zdá se mi, že standardně se pro práci s iBatisem používá právě spíš SqlMapClient. Viz. výňatek z dokumentace (kapitola Programming with Data Mapper: The API): String resource = "com/ibatis/example/sqlMap-config.xml"; Reader reader = Resources.getResourceAsReader (resource); SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMap(reader); Btw. dokumentace k iBatisu je výborně napsaná. Možná bych začal pátrat v ní ... Snad jsem trochu pomohl, Honza N. 2008/5/20 <[EMAIL PROTECTED]>: > Dobrý den, > > nedávno jsem tady zahlédl odkaz na iBatis http://ibatis.apache.org/. Rozhodl > jsem se ho tedy vyzkoušet. Zkusil jsem si pár příkladů a prošel nějaké > tutoriály a vše funguvalo podle mých představ, ale když jsem ho chtěl použít, > tak jsem narazil na 2 problémy. > > 1) Potřebuji zapisovat do více tabulek, které jsou v různých databázích. > Chtěl bych se proto zeptat, jak se dá nakonfigurovat DaoManager případně, jak > se to řeší. > > 2) Některé tabulky mají několik desítek sloupců, tak jsem se rozhodl použít > iBator k vygenerování tříd. Vše se vygenerovalo, ale jakmile jsem se je > pokusil použít (nic jsem neupravoval), tak mi to při inicializaci DaoManageru > vypsalo: > > Exception in thread "main" java.lang.ExceptionInInitializerError >at cz.projekt.main(Core.java:824) > Caused by: java.lang.RuntimeException: Description. Cause: > java.lang.RuntimeException: Could not initialize DaoConfig. Cause: > com.ibatis.dao.client.DaoException: Error while configuring DaoManager. > Cause: com.ibatis.common.exception.NestedRuntimeException: Error occurred. > Cause: com.ibatis.common.xml.Node > letException: Error parsing XML. Cause: > com.ibatis.common.exception.NestedRuntimeException: Error parsing XPath > '/sqlMapConfig/sqlMap'. Cause: com.ibatis.common.xml.NodeletException: Error > parsing XML. Cause: com.ibatis.common.exception.NestedRuntimeException: > Error parsing XPath '/sqlMap/select'. Cause: > com.ibatis.common.exception.NestedRuntimeException: Could not find SQL > statement to include with refid > 'SPOSREPDA_WT.abatorgenerated_Example_Where_Clause' > Caused by: com.ibatis.common.exception.NestedRuntimeException: Could not find > SQL statement to include with refid > 'SPOSREPDA_WT.abatorgenerated_Example_Where_Clause' > > Mohl by mi prosím někdo pomoci? S jinými ORM nemám zkušenosti. > > Děkuji. > > Adam > > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: DB copy
Zdravím, pokud se jedná jen o MySQL mohu paradit specifické řešení (ovšem možná i další databáze mají obdobné paralely). Je možné na začátku importního skriptu nastavit: SET FOREIGN_KEY_CHECKS=0; a na konci SET FOREIGN_KEY_CHECKS=1; něco málo se dočtete na blogu: http://blog.spikesource.com/mysql_hotbackup.htm v dokumentaci MySQL potom: http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html Pak si nemusíte lámat hlavu s pořadím insertů. Honza N. 2008/6/23 Radovana Straube <[EMAIL PROTECTED]>: > Dobry den, > > potrebujem skopirovat data z jednej schemy v databaze do druhej identickej > schemy (neskor aj pre rozne typy databaz). Ked si vylistujem zoznam tabuliek > v scheme (pomocou getTables(..)), dostanem zoznam tabuliek v abecednom poradi > (momentalne vyvijam na MySQL 5.0.1). V tomto zozname nie su zohladnene > relacie medzi tabulkami, takze potom sposob prekopirovania dat SELECT - > INSERT samozrejme nefunguje. > Mohol by ma prosim niekto nakopnut akym smerom sa mam vydat pri rieseni tohto > problemu? Odchytavat vynimky a podla toho rotovat tabulky sa mi nezda ako > velmi stastne riesenie. > > Dakujem > Radovana Straube > > > > -- ------------------ Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: Spring (Acegi) Security zmena a vynuceni https
K čemu v tomto případě používáte HTTPS protokol? Aby se nedalo odchytit heslo nebo k tomu aby byl chráněna session přihlášeného uživatele proti zneužití (Session hijacking <http://en.wikipedia.org/wiki/Session_hijacking>)? Protože pokud vám jde o to druhé, tak vámi uvedený způsob (pokud nemáte nějakou další kontrolu<http://blog.novoj.net/2007/06/05/sdileni-session-mezi-protokoly-http-a-https/>) nebude nic platný. Session cookie totiž budete mít pravděpodobně již vytvořenou od prvního requestu HTTP protokolem a tudíž bude odchytitelná. Útočník sice potom nezjistí heslo pro přihlášení, ale pokud to původní uživatel udělá za něj, bude mít k dispozici autentizovanou session díky této nechráněné cookie. Cestou je mít kompletně celý web na HTTPS, ale to generuje jistý overhead pro server, a nebo implementovat další ochrany proti odchycení session id. Možná to máte ošetřené, ale pro jistotu upozorňuji na tuhle možnost. Honza Novotný Dne 3. červenec 2008 15:43 Karel Tejnora <[EMAIL PROTECTED]> napsal(a): > Tak to jde, protoze jsem slepej jak patrona - pro > IS_AUTHENTICATED_ANONYMOUSLY uzivatele sem si nastavil requires http a i > kdyz jsem pred to dal IS_AUTHENTICATED_FULLY requires https vracelo mne > to http. Tak sem smazal requires=http a funguje to - jenom kdyz nahodou > zmeni url na http tak si pojede dal. > ale on na to browser upozorni... > > > > -- ------------------ Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: Nejaka knihovna na syntax highlighting
Já používám http://code.google.com/p/syntaxhighlighter/ - je to teda JavaScriptí záležitost. Co se týká JDK 1.5 nejsem si úplně jistý. H. Dne 29. leden 2009 11:59 Lukáš Zapletal napsal(a): > Zdravim, > > hledam nejakou malou knihovnicku na syntax highlighting Java kodu > (vcetne podpory 5.0). Idealne s nejakou benevolentni licenci, snadna > obsluha i nasazeni... ;-) > > Kdyz by to umelo i jine jazyky, nebudu se zlobit. Neco stabilniho. > > Diky za tipy > > -- > Lukas Zapletal > http://lukas.zapletalovi.com > -- -------------- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: Ako na automaticke testy - server side?
V Javě máte opravdu přehršel možností - asi nejznámnější jsou: - Continuum (http://continuum.apache.org/) - Hudson (https://hudson.dev.java.net/) - Teamcity (http://www.jetbrains.com/teamcity/) - Luntbuild (http://luntbuild.javaforge.com/) Všechny vám určitě splní to, co jste explicitně uvedl - většinou toho ovšem poskytují víc. Každý vám doporučí asi něco jiného, ale všechny jsou dobré. My používáme TeamCity od JetBrains. Honza N. 2009/3/11 Dusan Zatkovsky > DD. > > Co pouzivate na automaticke testy? Pre C++ projekty pouzivame buildbot, ale > ani ten nie je uplne dokonaly. > > Automaticke testy si predstavujem takto: > > - niekde na serveri bezi demon a sleduje zmeny v svn > - pri zmene urobi novy checkout, vsetko zbuildi, spusti testy > - v pripade chyby rovno posle email tomu, kto chybu sposobil > - generuje html reporty ( http://buildbot.net/trac/wiki/ScreenShots ) > > Odporucte nieco podobne pre javu. Googlim uz hodinu a nic som nenasiel. V > najhorsom pripade pouzijem buildbot aj na javu, ale pride mi to nesystemove > a > naviac sa pripravim o dalsie moznosti. > > Diky > > -- > Dusan > -- ---------- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: servlet a staticka metoda
Vím, že to tak prakticky je - ale nikde ve specifikaci jsem nenašel, že by instance servletu měla být vždy pouze jedna. Řekl bych, že tady záleží na implementaci webového kontejneru. Např. Apache Tomcat si drží pouze jedinou instanci servletu. Může někdo potvrdit odlišné chování jiných web kontejnerů? H.N. 2009/7/28 Peter Stibrany > "Pokial viem, tak sa pri volani servletu vytvara vzdy jeho nova > instancia," -- toto nie je pravda. Instancia sa vytvori iba jedna a > vsetky requesty smerovane na rovnaky servlet budu spracovane tou istou > instanciou. Viac sucasnych requestov je spracovavanych naraz, v > roznych vlaknach. > > S pozdravom, > -Peter Stibrany > > 2009/7/28 Radovana Straube : > > > > Dobry den, > > > > mam servlet, ktore vola staticku metodu. Moze sa stat, ze pri > viacnasobnom paralelnom vyvolani tohto servletu budu data spracuvane v > statickej metode inkonzistentne? > > V literature som nasla popis tohto problemu len pri threadoch. Pokial > viem, tak sa pri volani servletu vytvara vzdy jeho nova instancia, cize je > tam urcita paralela s threadmi. > > > > S pozdravom > > Radovana Straube > > > > > > > > > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: servlet a staticka metoda
Díky, neumím hledat :) H. 2009/7/28 Peter Stibrany > Mam tu po ruke Servlet 2.4 specifikaciu. V casti SRV 2.2 Number of > Instances sa pise: > > For a servlet not hosted in a distributed environment (the default), the > servlet > container ***must use only one instance per servlet declaration.*** > > Servlet declaration sa mysli deklaracia vo web.xml. > > S pozdravom, > > -Peter Stibrany > Foglyn - FogBugz in Eclipse > (www.foglyn.com) > > 2009/7/28 Ing. Jan Novotný : > > Vím, že to tak prakticky je - ale nikde ve specifikaci jsem nenašel, že > by > > instance servletu měla být vždy pouze jedna. Řekl bych, že tady záleží na > > implementaci webového kontejneru. Např. Apache Tomcat si drží pouze > jedinou > > instanci servletu. Může někdo potvrdit odlišné chování jiných web > > kontejnerů? > > > > H.N. > > > > 2009/7/28 Peter Stibrany > >> > >> "Pokial viem, tak sa pri volani servletu vytvara vzdy jeho nova > >> instancia," -- toto nie je pravda. Instancia sa vytvori iba jedna a > >> vsetky requesty smerovane na rovnaky servlet budu spracovane tou istou > >> instanciou. Viac sucasnych requestov je spracovavanych naraz, v > >> roznych vlaknach. > >> > >> S pozdravom, > >> -Peter Stibrany > >> > >> 2009/7/28 Radovana Straube : > >> > > >> > Dobry den, > >> > > >> > mam servlet, ktore vola staticku metodu. Moze sa stat, ze pri > >> > viacnasobnom paralelnom vyvolani tohto servletu budu data spracuvane v > >> > statickej metode inkonzistentne? > >> > V literature som nasla popis tohto problemu len pri threadoch. Pokial > >> > viem, tak sa pri volani servletu vytvara vzdy jeho nova instancia, > cize je > >> > tam urcita paralela s threadmi. > >> > > >> > S pozdravom > >> > Radovana Straube > >> > > >> > > >> > > >> > > > > > > > > > -- > > -- > > Ing. Jan Novotný > > @@ > > http://blog.novoj.net > > Myšlenky dne otce Fura > > -- > > > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: testovani odesilani mailu
Tohle by vám mohlo pomoci: http://blog.novoj.net/2007/05/31/automaticke-testovani-odeslani-emailu/ S pozdravem, Honza N. Dne 29. ledna 2010 2:02 Ladislav Kulhanek napsal(a): > My mame vytvoreny testovaci smtp server. Je to normalni server, akorat je > nakonfigurovany tak, aby emaily zahazoval a neposilal dal. Posila emaily > jenom na vyjmenovane adresy. > > 2010/1/28 Tomas Vojtech > > Zdravim, >> >> jak testujete odesilani mailu? Mate zkusenosti s nejakym fake smtp >> serverem? >> Nasel jsem dumbster (http://quintanasoft.com/dumbster/), ale nemam s nim >> zkusenosti. >> >> Mate s nim nekdo zkusenosti nebo doporucite nejaky jiny? >> >> Diky >> blaf >> > > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: spring vs. seam
Nevím, jestli náhodou není možné kombinovat Seam na view vrstvě a Spring na business vrstvě. Pak byste měl něco z obou světů. Jinak pokud se jedná o Spring na view vrstvě, tak tam jdou striktně cestou MVC, kdežto Seam je komponentově orientovaný a má výrazně složitější lifecycle při zpracovávání requestu. Osobně zastávám názor, že pro webové projekty, které nemají moc reuse - tj. každý nový web má naprosto unikátní grafické zpracování, je kladen důraz na čistotu (X)HTML, CSS, chceme mít kontrolu nad použitím JavaScriptu a podobně, je MVC cesta obvykle lepší. Naopak pro rozsáhlé IS, kde člověk potřebuje "nasekat" co nejvíce podobných obrazovek a dialogů v co nejmenším čase, určitě se časem začne komponentový přístup vyplácet. U vámi zmíněného eshopu, bych spíš zvažoval Spring MVC. Nicméně Seam jsem v životě nenasazoval, čerpám jen z informací ostatních. Dost pravděpodobně se za ty léta taky dost posunul. Určitě bude zajímavý názor někoho, kdo se Seamem reálně pracuje. Když bych měl říct přívlastky pro obě technologie - v souvislosti se Seamem mě napadá slovo "enterprise", kdežto v souvislosti se Springem "lightweight". Záleží ještě taky na vaší nátuře, někdo má víc v oblibě jednoduchá a někdo všespasitelná řešení. Honza N. 2010/2/14 Jiří Nápravník > Zdravím, > dovolím si takhle při nedělním večeru možná menší flame war, i když bych > nerad aby se to v to zvrhlo. > > Řeším dilema, který framework je "lepší" - Seam nebo Spring? Vím, nejde > říct jednoznačně, nicméně pokud byste mohl někdo sepsat proč ten nebo ten... > > > Seam zvažuji proto, že jsem se již naučil ve škole JSF, Facelets, EJB a > Seam je jaksi zaštiťuje. Také se mi líbí pěkná spolupráce s ice/rich-faces. > > Spring mě však už láká delší dobu, je odlehčenější a přijde mi u něj větší > svoboda. Existuje ovšem nějaké pekně napojení Ajaxu alá ice/rich-faces pro > něj? Také mi přijde po Springu lepší poptávka na trhu práce (nebo se > mýlím?). > > Můžete napsat vaše důvody? Vezměme třeba co je ideální pro takové klasické > aplikace - naprř. jako eshop. > > Díky předem > Nápravník > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: java.cz - redakční systém nefunguje?
Redakční systém jako takový snad funguje - respektive podařilo se mi normálně přihlásit. Poslání hesla na email skutečně hází chybu. Honza N. 2010/6/25 Holý Jiří > Prosím, jsem v tom sám, nebo i na vás redakční systém na java.cz hází > chyby, když se chcete registrovat popřípadě zaslat heslo na email? > > S pozdravem > Jiří Holý > -- -------------- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: Modulární aplikace
Ahoj, my jedeme na modulárním systému asi 2 roky (s tím rozdílem, že nemáme OSGI, ale jen zřetězené aplikační konexty Springu na stejné classpath - nicméně už to k zavedení modulárnosti stačí). Řešili jsme stejný problém a obávám se, že neexistuje ideální řešení. Základní pravidlo spočívá ve správném "řezu" modulů - každý by měl mít jednoznačnou odpovědnost a funkci. Moduly by se měly vzájemně doplňovat spíš než ve funkcionalitách překrývat. Prostě příliš malé moduly nejsou dobré, protože mají potom mnoho závislostí ven, velké moduly také nejsou dobré, protože se tím zase snižuje jejich použitelnost. Na správném řezu funkcionalitou prostě záleží hodně. Pokud by jeden modul sahal do dat jiného modulu přímo a nikoliv přes jeho API povede toto porušení zapouzdřenosti k: svázanosti (couplingu) těchto dvou modulů, zhoršení testovatelnosti, problém se samostatným rozvojem modulů (vždy se na ně bude muset pohlížet jako na nějaký provázaný celek). My jsme došli ke dvěma možným technikám v těchto případech (naštěstí těch případů není zase až tak moc). 1) obětování výkonu - tj. každý modul udržuje pouze svá data a pokud z nějakého důvodu potřebuje vrátit či pracovat s daty jiného modulu, jde přes jeho API - tím se ale samozřejmě nedá využít JOINů a platíme výkonem. Tyto mezimodulové "dotazy" se alespoň snažíme optimalizovat na metodách API tím, že tam máme metody pro hromadné načítání dat - např. List getDataById(Integer... id), která může všechna potřebná data načít jednorázově přes WHERE id in (...) 2) porušením normální formy db - kromě přímého volání mezi moduly na úrovni API máme ještě jednu formu komunikace postavenou na "observer patternu", která vychází ze Springu, tj. moduly v důležitých okamžicích své funkcionality publikují tzv. eventy do systému, na které pak mohou reagovat listenery v jiných modulech. Tímto způsobem je možné distribuovat některá důležitá (i agregovaná) data do zbytku systému. Uvedu příklad - máme tzv. hodnotící modul, který umožňuje hodnotit libovolný obsah kdekoliv (např. ve formě hvězdiček na nějaké škále), tento modul samozřejmě o obsahu samotném nic neví - naopak jiný modul, který spravuje daný obsah (třeba články) chce při vracení článku vracet aktuální hodnotu průměrného hodnocení. Hodnotící modul vždy po přepočtení aktuálního hodnotícího čísla po daný obsah vyhodí událost do systému, na kterou může kterýkoliv jiný modul naslouchat. Modul starající se o články tuto událost odchytí a k článku si uloží dodatečný údaj o aktuálním hodnocení (již vypočtený, hotový k zobrazení). Tímto způsobem je porušena normální forma - jeden údaj je v DB uložen 2x, nicméně data jsou potom již hezky po ruce (bez výkonnostní penalizace) a nedochází k narušení zapouzdřenosti modulů - jeden může bez problému fungovat bez druhého, pokud běží oba - spolupracují. Pokud existuje ještě nějaký jiný způsob komunikace rád se jej dozvím. Jak říkám, ani jedna z výše uvedených praktik není úplně ideální, ale na nic lepšího jsme za ty roky nepřišli :(. Honza -- -------------- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura -- 2010/9/1 David Mach > Zdravím všechny! > > V naší firmě jsme doposud vyvíjeli klasické aplikace na jedné classpath > (typu "vidím vše, volám vše, využívám vše", čili občas pěkná prasárna). Nyní > vyvíjíme novou modulární aplikaci postavenou na OSGi, přičemž naše původní > vize byla ta, že jednotlivé moduly mezi sebou budou komunikovat výhradně > prostřednictvím API. To by ale například znamenalo, že pro získání dat z > modulu A (která potřebuji pro SQL dotaz v modulu B) budu muset nejprve volat > nějakou metodu z API modulu A, získat ta data a teprve posléze budu moci > složit SQL dotaz v modulu B. Z této představy ovšem vstávají některým > kolegům hrůzou vlasy na hlavě a horují pro to, abychom se drželi klasické > cesty, kdy data z tabulek náležejících k modulu A budeme získávat pomocí > JOINů. > > Chci se tedy zeptat přítomných zkušenějších vývojářů na to, zda je původní > vize správná a také na zkušenosti z implementace. Zajímá mě také rozdíl ve > výkonu aplikace při použití API vs JOIN... > > Vřelé díky předem! > > David Mach > >
Re: 2PC - poradi commitu
Ano - detailněji více v tutorialu JMS: http://java.sun.com/products/jms/tutorial/1_3_1-fcs/doc/advanced.html#1026538 Použití v J2EE hned následující kapitola. Honza Novotný Ing. Jan Novotný analytik návrhář Corpus Solutions a.s. Telefon HK: +420 49 553 21 54 Telefon centrála: +420 24 102 03 33 Email: [EMAIL PROTECTED] WWW: http://www.corpus.cz Michal Palička napsal(a): Dobry den, jestli to dobre chapu, tak v ramci vasi transakce provadite nasledujici operace: (1) operace nad daty v databazi (2) odeslani zpravy pomoci JMS Jak je videt, do transakce neni nijak zahrnut prijem zpravy. Dost dobre to ani nelze. Neni totiz mozne v ramci jedne transakce kombinovat odeslani a prijeti teze zpravy. mp. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] On Behalf Of Jirka Hanika Sent: Monday, June 27, 2005 3:25 PM To: Java Subject: 2PC - poradi commitu Dobry den, mam problem: chtel bych z EJB (mapovano do databaze) poslat JMS, ktera aktivuje MDB, ale tak, aby ta zprava byla dorucena az po dokonceni te EJBckove databazove transakce (rizene kontejnerem), aby byl videt uz novy stav. Jak byste na to sli? Jedna z variant reseni je podridit EJB i JMS two-phase commitu, tj. mit je jako XA zdroje. Nicmene tam jsem nabyl podezreni, ze to muj problem nevyresi: obema zdrojum se podari faze prepare, ale pak se dela commit v nedeterministickem poradi. Takze se klidne muze stat, ze ta JMS zprava se doruci driv, nez se zmeni obsah databaze, a mam smulu. Nebo se da to poradi commitu nejak dostat pod kontrolu? (jeden mozny trik je pouzit XA + non-XA zdroj, cimz poradi zacne byt jasne: XA prepare, non-XA commit, XA commit, ale to mi zatim pripada trochu nevkusne) Jirka Hanika
Re: GUI Designer pro Eclipse 3.1
Krásný příklad javské aplikace je třeba XMLMind (http://www.xmlmind.com). Zdá se mi docela rychlý a spolehlivý. Ale souhlasím, jinak na Swing aplikaci moc nenarazíte. J.N. Ing. Jan Novotný analytik návrhář Corpus Solutions a.s. Telefon HK: +420 49 553 21 54 Telefon centrála: +420 24 102 03 33 Email: [EMAIL PROTECTED] WWW: http://www.corpus.cz Kouba Tomas napsal(a): Zdravim, muj nazor nebude moc popularni, ale myslim, ze desktop aplikace jsou v tuhle chvli v Jave ztracene: 1. Uzivatele je nechteji pouzivat. Znam jedinou relativne uspesnou aplikaci v Jave pro desktop mimo veci pro programatory (Limewire). To je pro tak uspesny jazyk velmi malo. Podivejte se prosim kolik mate na svem pocitaci nainstalovano SWT/Swing aplikaci, ktere nejsou pro vyvojare. Zeptejte se ptom proc... 2. Swing je velmi nepovedeny. Sice jeho navrh z hlediska programatora neni spatny, ale z hlediska uzivatele je to prinejmensim podivna vec. Je to pomale, vypada to nezvykle a pri prepinani se to zobrazuje zvlastne. Problemy jsou gtreba i u klavesovych zkratek. 4. SWT je rychlejsi, ale verze kterou znam (asi rok zpet) nema funkcni grid pro db aplikace a sprava pameti spise pripomina C++ nez Javu. 5. Jediny duvod, proc vytvaret aplikace v Jave je Linux. Linux ma podle zdroju, ktere jsem cetl cca 3-5% na desktopu. To se pro nikoho nevyplati. Na serverech je situace uplne jina, ale tam nebezi Swing. -- Kouba Tomas mailto:[EMAIL PROTECTED] -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Richard Malaschitz Sent: Wednesday, August 17, 2005 4:12 PM To: Java Subject: Re: GUI Designer pro Eclipse 3.1 Celkom by ma zaujimalo, ci niekto pise vacsie aplikacie vo Swingu (alebo v SWT). Nemam na mysli nejake speciality typu IDE ale klasicke informacne systemy. Z diskusii okolo Javy to vyzera ako keby vsetci robili iba webove aplikacie.
Re: nacteni dat z velkeho xml souboru
My používáme v kodu Dom4J, umožňuje podsunout implementace jak pro DOM, tak i SAX. Je poměrně jednoduchý a dobře použitelný. Používáme ho sice zatím jen na jednoduché věci (konfigurace apod.), ale vyhovuje. Zkuste se kouknout ještě na něj. H.N. Ing. Jan Novotný analytik návrhář Corpus Solutions a.s. Telefon HK: +420 49 553 21 54 Telefon centrála: +420 24 102 03 33 Email: [EMAIL PROTECTED] WWW: http://www.corpus.cz Tomas Beranek napsal(a): ale jinak k tomu Digester, sice to nepotrebuju, ale chvilku jsem na to koukal a neprijde mi to moc slozite(nestudoval jsem detaily) zvlaste ne pro aplikaci na kterou to potrebuje Ales(tedy nacist a preulozit do DB). prijde mi to rychlejsi nez si to psat SAXem. je to rozhodne zajimavy a diky, ze jste to zde zminili. PS: tak tohle me fakt pobavilo :-) Videl jsem uz XML soubory, ktere by nevesly do pameti sebevetsiho Pecka ani jako Stringy. A takoveto soubory chteli nasi zakaznici posilat jako SOAPove zpravy ;-). A nakonec i poslali :-D - Original Message - From: "Oto Buchta" <[EMAIL PROTECTED]> To: "Java" Sent: Thursday, October 13, 2005 12:28 PM Subject: Re: nacteni dat z velkeho xml souboru On Thursday 13 of October 2005 10:30, Ales wrote: Dobry den, resim nacteni dat z vetsiho (velkeho) xml souboru, jedna se cca o 20 MB. Uvedeny soubor vznikl exportem z MySQL databaze. Problem je v tom, ze i pri nastaveni Xms 30m mi vyhazuje OutOfmemory:Java heap space. Je nejake omezeni (nemyslim technicke, ale pro prakticke pouziti) , kdy jeste data ukladat do xml souboru a kdy jiz starost o data predat nejake databazi? Pro ukazku prikladam kod tridy, ve ktere se snazim nacist uvedeny soubor Musim se priznat, ze nacitat 20MB XMLcko do DOMu mi prijde trosku ulitnute, obzvlaste kdyz nemas nastavene -Xmx na alespon 512MB ;-) Videl jsem uz XML soubory, ktere by nevesly do pameti sebevetsiho Pecka ani jako Stringy. A takoveto soubory chteli nasi zakaznici posilat jako SOAPove zpravy ;-). A nakonec i poslali :-D Opravdu to vyznam ma a pracovat se s tim da. Jinak pokud znas dobre strukturu XMLcka a ma to byt jednoucelova aplikace, tak bych doporucoval reseni ala IBM a WS Interopy - StringTokenizer a Regex ;-) Pokud ale potrebujes plnou silu XML (entity, include,...), tak se neobejdes bez SAXu. A pro tento pripad mi prijde ucit se Digester jako studovat navod na sestaveni kanonu na vrabce... To se radeji nauc SAX;-) -- Oto 'tapik' Buchta, [EMAIL PROTECTED] Senior Engineer, Systinet Corp, http://www.systinet.com -- No virus found in this incoming message. Checked by AVG Anti-Virus. Version: 7.0.344 / Virus Database: 267.11.13/126 - Release Date: 9.10.2005
Re: Struts, Tapestry ...
Na Strutsy mohu jen doporučit výbornou knihu - Programujeme Jakarta Struts (O'Reilly - překlad Grada). Sám jsem se to z ní učil a je to v ní úplně skvěle popsané. Lepší zdroj jsou snad už jen zdrojové kódy Strutsu, které jsou taky potřeba ;). V nějakém článku na www.onjava.com bylo srovnání JSF a Tapestry - tam vycházelo lépe JSF především díky počtu vývojářů a uživatelů tohoto frameworku (což zaručuje plynulý rozvoj). Takže minimálně se v tom článku dozvíte něco o těch výhodách / nevýhodách Tapestry. Možná budou někde i srovnání se Strutsy, ale na ty jsem nenarazil. S pozdravem Honza Novotný Ing. Jan Novotný analytik návrhář Corpus Solutions a.s. Telefon HK: +420 49 553 21 54 Telefon centrála: +420 24 102 03 33 Email: [EMAIL PROTECTED] WWW: http://www.corpus.cz Jiří Krůček napsal(a): Rad by som vas porosil a nejaku dobru literaturu (kniznu, elektronicku) + nejake sample na tvorbu webapp pomocou Struts alebo Tapestry Rick Hightower: Jakarta Struts Live http://www.theserverside.com/books/sourcebeat/JakartaStrutsLive/index.tss S pozdravem Jiri Krucek
Re: JavaHelp z OpenOffice Writeru?
Zdravím, my používáme pro dokumentaci DocBook - pro vytváření dokumentace XMLMind editor (http://www.xmlmind.com/xmleditor/). Osobně si to nemůžu vynachválit. Docbook má export i do Javahelpu, byť my osobně používáme pro tištěnout dokumentaci koverzi přes rtf (dssl) a teprve potom do PDF přes další konverzní tool. Super při tom je, že na docbook funguje pěkně i CVS, dá se krásně rozdělit do kapitol a potom znovu spojovat. Hlavní výhodu ovšem vidím v tom, že se tvůrci dokumentace soustředí na dobře struktorovaný obsah a ne na formu. Navíc tato dokumentace se dá jednoduše prezentovat na projektovém webu (maven umí generovat stránky z docbookových dokumentů). Takto už jsme vytvořili poměrně obsáhlé dokumentace. S pozdravem Honza Novotný Ing. Jan Novotný analytik návrhář Corpus Solutions a.s. Telefon HK: +420 49 553 21 54 Telefon centrála: +420 24 102 03 33 Email: [EMAIL PROTECTED] WWW: http://www.corpus.cz Jan Dvořák napsal(a): Vážená konference, potřebujeme připravit nápovědu jako JavaHelpový HelpSet a zároveň jako dokument v PDF. Může se mi podařit ten JavaHelp z dokumentu, který mám v OpenOffice Writeru? Je rozumná cesta přes DocBook? Co používáte pro průchod bažinatými oblastmi dokumentace? Honza Dvořák
Re: dlouhe session
No my jsme to řešili, tak že jsme si v servletu spustili thread, který vykonával tu dlouhotrvající operaci a servlet se potom jen sledoval output toho threadu a z toho usuzoval v jakém stavu zpracování thread je. Na klienta odeslal potom stránku s META tagem REFRESH, třeba na 15 sekund. Takže klientovi se po 15 vteřinách zobrazoval progressbar, jak na tom ta operace je. Trochu se tím ale otevírá pandořina skříňka protože nás stálo kus práce vyladit thready. Pak je tu ještě možnost rozdělit tu 5 minutovou operaci na několik menších a provádět uživatelel "průvodcem", kde bude jen mačkat NEXT a tím spustí další fázi zprocesování. To jen tak v rychlosti k řešení, které jsme už použili. S pozdravem Honza Novotný Ing. Jan Novotný analytik návrhář Corpus Solutions a.s. Telefon HK: +420 49 553 21 54 Telefon centrála: +420 24 102 03 33 Email: [EMAIL PROTECTED] WWW: http://www.corpus.cz Burdik Petr napsal(a): Ahojas, mam problemek. Mam operaci, ktera trva zhruba 5 minut. To je na delku jednoho pozadavku pres http velmi dlouho. Napada Vas nejake reseni, jak pockat na takto dlouhou operaci? To je trosku zmatene, tak priklad: 1. pres webformular zadam hodnoty 2. poslu na server 3. pozadavek trva na vyrizeni 5 minut. Do te doby mi samozrejme vyprsi spojeni. Operace dobehne, ale formular se nikdy nezobrazi. Mnou namyslene reseni: 1. vytvorit zakladni objekt, ulozit ho a dat mu stav ze neni dodelany 2. asynchronne (casovacem?) spustit danou dlouhotrvajici operaci 3. zobrazit formular ze byl objekt vytvoren a bude tam stav. Otazkou je jestli a jak spustit danou operaci asynchronne v servletu tak, abych mohl pokracovat v praci dal. Pet
Re: Ceska a slovenska Java User Group?
No a byl by velký problém přednášky nahrávat na video a dávat jej k dispozici pro stažení? Osobně bych se rád těchto setkání čas od času zůčastnil, ale pro udržení linky s tím co se děje by tohle možná dost přispělo. Variantou k tomuhle je třebas nějaký krátký report (jaké občas vycházejí na java.net), ale kdo by se s tím dělal že?! Udělat video navíc v současné době není žádný velký problém. No je to jen nápad ... na jednu stranu chápu lidi z jiných měst (sám jsem z Hradce Králové), kteří těžko budou pravidelně dojíždět, ale i to, že co se upeče doma je obvykle zadarmo (nebo hodně levně). Honza Novotný Ing. Jan Novotný analytik návrhář Corpus Solutions a.s. Telefon HK: +420 49 553 21 54 Telefon centrála: +420 24 102 03 33 Email: [EMAIL PROTECTED] WWW: http://www.corpus.cz Roman Strobl napsal(a): Jak jsem zminil v jinem mailu, dela se to v Praze, protoze je to nejjednodussi - mame zde lidi a prostory a nemusi se resit vetsi financovani. Ja bych byl hrozne rad, kdyby se to povedlo i v jinych mestech, ale zatim to zkusime rozjet zde a pak se uvidi. Jmeno JUG se jeste bude muset dohodnout. Kdybychom to nazvali "Prazska lokalni Java user group", tak nas neprijde navstivit zadny Brnak, coz by byla skoda, ne? :) -Roman Martin Kuba wrote: Myslim si, ze to zni dost pragocentristicky, jsou tu i jina velka mesta se spoustou programatoru v Jave, namatkou jmenuji Brno :-) Takhle to vypada, ze si prazaci chteji zajistit financovani navstevy hospody pod plastikem celo-dvou-narodni aktivity. Protoze navsteva prazske akce pro mne znamena stravit ten den sest hodin na ceste, nelibi se mi to. Bud stridejte mesta, nebo tu aktivitu po pravu nazvete Prazska lokalni Java user group. -Roman
Re: Ceska a slovenska Java User Group?
To je luxusní ... v tohle jsem ani nedoufal, že by to takhle mohlo vypadat ;) Honza Novotný Ing. Jan Novotný analytik návrhář Corpus Solutions a.s. Telefon HK: +420 49 553 21 54 Telefon centrála: +420 24 102 03 33 Email: [EMAIL PROTECTED] WWW: http://www.corpus.cz Roman Strobl napsal(a): Roman Hrivik wrote: Co sa tyka formatu nahravky by som odporucil napr. ako to riesia na javapolis t.j. zvukovy zaznam + video zaznam z premietacieho zariadenia. Tady je priklad jak by to mohlo vypadat - takto nahravalo AVC world usability day: http://avc.sh.cvut.cz/archiv/index.php?id=1041&rid=272&offset=0&select=0 -Roman Roman Roman Strobl said: Tomáš Procházka wrote: Ptal jsem se jedné známe, co v AVC ÄŒVUT dÄ›lá a Å™Ãkala, že by se urÄitÄ› nÄ›kdo naÅ¡el, že zájem o to by mÄ›la i ona sama, AVC má i svou konferenci na [EMAIL PROTECTED], takže by asi bylo nejlepÅ¡Ã zeptat se tam. AVC ma zajem, takze prednasky, co budeme poradat v ramci JUG, budou nahravane a publikovane na internetu. -Roman Strobl Sun Microsystems
Re: OT Re: SEO optimalizacia a pouzitie Struts
Je to jenom můj pocit nebo se tu v odborné konferenci řeší osobní záležitosti? Myslím, že nemluvím jen za sebe, když řeknu, že podobné POSTy mě vůbec nezajímají a sem prostě nepatří ... Honza Novotný Ing. Jan Novotný analytik návrhář Corpus Solutions a.s. Telefon HK: +420 49 553 21 54 Telefon centrála: +420 24 102 03 33 Email: [EMAIL PROTECTED] WWW: http://www.corpus.cz František Fuko napsal(a): Hehe, radeji premyslejte o sobe... Burdik Petr <[EMAIL PROTECTED]> writes: Supr, diky. Behem tohoto tydne budu tuto funkci implementovat a premyslel jsem nad nazvem tridy :) Pet
Re: Tomcat memory leak?
Stejné problémy máme na Oracle aplikačním serveru OC4J 9.0.4.0.0 a patrně i ve vyšších verzích bude stejný problém. Takže bych to shrnul, že to skutečně bude problém architektury, nebo obecně používaných knihoven, které nedovolí uvolnit původní classloader - jelikož jak to tak sleduji tak problémy jsou průřezově všude :). HN. Ing. Jan Novotný analytik návrhář Corpus Solutions a.s. Telefon HK: +420 49 553 21 54 Telefon centrála: +420 24 102 03 33 Email: [EMAIL PROTECTED] WWW: http://www.corpus.cz Michal Palička napsal(a): Dobry den, setkal jsem se s OutOfMemoryError pri vyvoji pro JBoss (obsahuje Tomcat), kdy se pomerne casto na server zavadela nova verze aplikace. Zhruba po 10 verzich aplikace server vzdy odpadl na pamet. mp. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] On Behalf Of Jakub Příkazský Sent: Tuesday, April 11, 2006 1:31 PM To: Konference JAVA Subject: Tomcat memory leak? Zdravím, mám dotaz ohledně chování Tomcatu. Při vývoji se potýkám s problém, že Tomcatu dojde paměť - cca nad 110MB už, není zaručené že odpoví. Zkoušel jsem v NetBeans 5.0 profilovat naše třídy, vypadá to, že se neděje nic podezřelého tj. počet tříd se nezvyšuje. Toto chování se projevuje především při zátěži, tj.pokud si rozjedu test pomocí JMeteru, ale občas také někdy pokud se vícekrát provede deploy a restart aplikace na serveru. Používám: Tomcat 5.5.x, Spring, Hibernate... Zajímalo by mě, zda jste se někdo s tímto fenoménem již setkal... Díky Jakub
Re: Rada s vyvojem projektu
Mám dobré zkušenosti s DOM4J knihovnou - ta je takovou dost jednoduchou nadstavbou nad DOMem a SAXem. Potom pracujete s XML podobně jako kdyby byla v DOM a přesto se na nižší úrovni použije SAXový přístup. Knihovnu doporučuju, protože má člověk komfort DOMu a paměťové nároky práce SAXu. API je dost simple. Honza Ing. Jan Novotný analytik návrhář Corpus Solutions a.s. Telefon HK: +420 49 553 21 54 Telefon centrála: +420 24 102 03 33 Email: [EMAIL PROTECTED] WWW: http://www.corpus.cz Zdeněk Vráblík napsal(a): Dobry den, Ad vlastni XML protokol: Moc by mne zajimalo, kolik z vas, kdo pouziva vlastni XML protokol, k nemu pristupuje pres SAX ci jiny podobny parser. Myslim, ze vetsina z vas to stejne nazene do DOMu ;-) Myslim si, ze na dokumenty nad 10MB je skoro nutnost pouzivat SAX. Pokud se vytvori hierarchie nekolika sax parseru (clanky na JavaWorld), tak je to temer stejne prehledne, jak pouziti JDom. Ad mnozstvi dat: pres SOAP with attachments jsme protlacili 2GB zpravu, a to vse na Opteronoven Linuxu. Holt nas zakaznik, nas pan. Kolik takovy request zabral operacni pameti? Nevim, jak resi parsovani WS, ale predpokladam, ze by to mohlo byt lepsi, nez vytvorena DOM struktura. Diky. Zdenek Vrablik - ICQ: 94 91 90 91 HomePage: zdenek.vrablik.net
Re: OC4j :: Log4j :: JMSAppender
Úplně stejný problém jsem řešil já - tedy setkal jsem se s ním teprve ve chvíli, kdy jsem přešel na Log4J verze 1.3aplha-8, kde jsem chtěl využít logování přes DataSource uložený v JNDI. Můj problém je v tom, že log4j (např. pokud bylo v nějaké statické třídě jako globální proměnná logger Log4J) inicializoval appendery a loggery ve fázi, kdy je EAR inicializován a nebylo možné v této fázi nastartovat transakci. Musel jsem to obejít přetížením tříd log4j a vyřešení tohoto problému takto: import org.apache.log4j.db.JNDIConnectionSource; /** * Upravuje nevhodné chování DBAppenderu při inicializaci Oracle. * * @author Jan Novotný */ public class Log4JJNDIConnectionSource extends JNDIConnectionSource { /** * @see org.apache.log4j.spi.OptionHandler#activateOptions() */ public void activateOptions() { try { //pokusíme se opatrně ověřit funkčnost JNDI Connection Source System.out.println("LOG4J-JNDI - Activate options - connection source ... "); super.activateOptions(); } catch (Throwable e) { //Ups - chybka ... je možné že ještě nemáme přístupný JNDI Context ... odložíme inicializaci na později. System.out.println("LOG4J-JNDI-NOVOJ - Activate options - connection source ... failed"); e.printStackTrace(System.out); } } } A JEŠTĚ JEDNA TŘÍDA import org.apache.log4j.db.DBAppender; import org.apache.log4j.db.ConnectionSource; import org.apache.log4j.spi.LoggingEvent; /** * Upravuje nevhodné chování DBAppenderu při inicializaci Oracle. * * @author Jan Novotný */ public class Log4JDBAppender extends DBAppender { private boolean initializedProperly = false; public void activateOptions() { try { //pokusíme se opatrně aktivovat appender System.out.println("JNDI Log4J - aktivuji appender ... "); super.activateOptions(); initializedProperly = true; } catch (Throwable e) { //hups nepovedlo se no nic zkusíme to při další příležitosti System.out.println("JNDI Log4J - chyba při aktivaci appender (toto může být v pořádku): " + e.getLocalizedMessage()); } finally { // all nice and dandy on the eastern front this.active = true; } } protected void append(LoggingEvent event) { //něco se pokakalo při načítání konfigurace DS ... takže ho zkusíme reaktivovat ConnectionSource connectionSource = getConnectionSource(); //pokud je typ dialektu neznámý, znamená to, že se CS je zatím neinicializovaný - zkusíme to tedy znovu if (!initializedProperly && connectionSource.getSQLDialectCode() != ConnectionSource.UNKNOWN_DIALECT) { if (connectionSource instanceof Log4JJNDIConnectionSource) { System.out.println("F1 JNDI Log4J - rekonfiguruji connection source ... "); connectionSource.activateOptions(); } //pokusíme se reaktivovat i appender System.out.println("F1 JNDI Log4J - rekonfiguruji appender ... "); activateOptions(); } //pokud se povedlo napodruhé zalogujeme, jinak holt smůla if (initializedProperly) { //další oprava - DBAppender si neuměl poradit s velkými logovanými zprávami super.append(new Log4JTrimmedLoggingEvent(event)); } else System.out.println("F1 JNDI Log4J - appender neinicializován - log bude zahozen ..."); } } V podstatě jsem ignoroval chyby při neúspěšné inicializaci DS a logoval je na system out až do doby, než se inicializace povedla - pak už vše pokračuje normálně (tzn. jakmile se aplikace už nahodila a došlo k nějakému volání, kde už byly transakce k dispozici). Tím jsem si svůj problém vyřešil a běhá mi to bez problémů. Obdobné by to mohlo být i toho JMS. Honza Novotný Ing. Jan Novotný analytik návrhář Corpus Solutions a.s. Telefon HK: +420 49 553 21 54 Telefon centrála: +420 24 102 03 33 Email: [EMAIL PROTECTED] WWW: http://www.corpus.cz Vaclav Stumbauer napsal(a): Zdravim, rad bych na session facade v pripade vypocetne dlouho trvajicich operaci predaval informaci o jejich prubehu pres JMS. Problem nastava pri deploymentu aplikace na OC4J. V okamziku vytvareni instance prvni session beany v ramci ktere je inicializovano i log4j dojde k nasledujicimu problemu: javax.naming.NamingException: Not in an application scope - start Orion with the -userThreads switch if using user-created threads -userThreads jsem oc4jcku davat zkousel, ale nepremava. Zda se ze chyba nastava ve chvili, kdy se log4j pokousi lookupnout v jndi navazanou topic connection factory. Mate nejaky napad? diky Vasek Stumbauer
Re: JSP značka v atributu HTML tagu nebo j iné značky
Nejsou, k tomu slouží _expression_ Language - viz: http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSPIntro7.html Honza Ing. Jan Novotný analytik návrhář Corpus Solutions a.s. Telefon HK: +420 49 553 21 54 Telefon centrála: +420 24 102 03 33 Email: [EMAIL PROTECTED] WWW: http://www.corpus.cz Martin Majer napsal(a): Jsou v JSP možné tyto zápisy?
Re: Testovani privatnich metod s jUnit 4
S private metodama je obecně potíž. Pokud nemáte vyloženě důvody k tomu ji mít private - lze to řešit takto: 1) nechat ji jako friendly + testovací třídu dát fyzicky do jiného adresáře (test - zdroják bude v src) ale do stejné package jako testovaná třída -> toto je asi nejblíž k "private" statusu 2) dát ji jako protected + v testu si udělat inner class, která z vaší třídy podědí a owrapuje protected metody do svých public metod -> tímhle už riskujete, že to někdo podědí a přetíží Honza Novotný Ing. Jan Novotný analytik návrhář Corpus Solutions a.s. Telefon HK: +420 49 553 21 54 Telefon centrála: +420 24 102 03 33 Email: [EMAIL PROTECTED] WWW: http://www.corpus.cz Tomas Hubalek napsal(a): Zdar, mam takovou spise filozofickou otazku. Zvazuju, ze bych chtel otestovat privatni metodu jedne tridy. Zvazuju ze bych to udelal s jUnit 4 s tim, ze ten unit test pripojim primo do dane tridy. Nelibi se mi ale to, ze 1, samotna trida bude v runtime zavisla na tridach jUnitu, coz je podle me, chyba navrhu. 2, testovaci metoda musi byt public, coz znamena ze exportuju tuto metodu nesmyslne a zatemnuju tim API Alternativy jsou: pouzit Reflection a testovat privatni metodu pres reflection -> zda se mi moc slozite pouzit Groovy pro unit test -> asi nejschudnejsi, ale neni to pure Java, musim do Mavenu pridavat goal na compilaci Groovy trid, potize s Eclipse, ... pouzit TestNG, ale i tam je nakonec zbytecna zavislost tridy na testovacim frameworku. Jestli muze byt testovaci metoda v TestNG privatni, to nevim. Mate k tomu nekdo nejakou poznamku? Napad? Jak to delaji jinde? Tom
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 pozdravem H.N. -- Ing. Jan Novotný Software Engineer Fincom-Materna Communications, a.s. SNP 402, 500 03 Hradec Králové 3 Czech Republic
Re: Jak zjistit, které JARy jsou aplikací používány?
Díky za rady. Vyzkouším a zkusím popsat zkušenosti ... H.N. Michal Palička napsal(a): Dobry den, zkuste pouzit JarAnalyzer. http://www.kirkk.com/main/Main/JarAnalyzer Osobne jsem s nim nepracoval, ale podle popisu je to presne to, co hledate. Jestli ten nastroj zkusite, tak prosim pripadne sdelte vase zkusenosti. Myslim, ze nejsem sam, koho to bude zajimat. Diky mp. From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] On Behalf Of "Ing. Jan Novotný" Sent: Wednesday, September 13, 2006 5:47 PM To: konference@java.cz Subject: 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 pozdravem H.N. -- Ing. Jan Novotný Software Engineer Fincom-Materna Communications, a.s. SNP 402, 500 03 Hradec Králové 3 Czech Republic -- Ing. Jan Novotný Software Engineer Fincom-Materna Communications, a.s. SNP 402, 500 03 Hradec Králové 3 Czech Republic
Re: Jak zjistit, které JARy jsou aplikací používány?
Zdravím, vyzkoušel jsem JarAnalyzer - instalace byla bezproblémová, výstup více méně taky. Ve spojení s generováním grafů měl sice problémy s vygenerovaným výstupem (vadí mu lomítka v cestě) ale po chvilce editace to dá výstup, který už GraphViz zpracuje. Dalo by se říct, že výstupem bylo to co jsem potřeboval. Nicméně v našem případě jsem zjistil, že všechny JARy spolu nějak souvisí - tzn. nemůžeme žádný bezpečně odebrat. Varianta s classloaderem by pravděpodobně dala jiný výstup - tj. že sice všechny JARy jsou nějak provázané, ale z některých se třídy nikdy nezískávají, protože se jejich funkcionalita prostě nepoužívá. Odebrání takových JARů by sice nebylo bez rizika, ale možná by se nám nakonec to zeštíhlení podařilo - v tomhle nám však JarAnalyzer nepomůže. Nakonec jsme však usoudili že náklady by neodpovídaly skutečnému přínosu zeštíhlení, takže se prozatím smíříme se současným stavem. Každopádně děkuji všem za rady a pomoc. Honza N. Michal Palička napsal(a): Dobry den, zkuste pouzit JarAnalyzer. http://www.kirkk.com/main/Main/JarAnalyzer Osobne jsem s nim nepracoval, ale podle popisu je to presne to, co hledate. Jestli ten nastroj zkusite, tak prosim pripadne sdelte vase zkusenosti. Myslim, ze nejsem sam, koho to bude zajimat. Diky mp. From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] On Behalf Of "Ing. Jan Novotný" Sent: Wednesday, September 13, 2006 5:47 PM To: konference@java.cz Subject: 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 pozdravem H.N. -- Ing. Jan Novotný Software Engineer Fincom-Materna Communications, a.s. SNP 402, 500 03 Hradec Králové 3 Czech Republic -- Ing. Jan Novotný Software Engineer Fincom-Materna Communications, a.s. SNP 402, 500 03 Hradec Králové 3 Czech Republic
Re: java.lang.String.intern()
Nejsem si jistý, ale nezajistí se touto metodou, že konkrétní string bude na haldě pouze jednou? Tzn. že je teoreticky možné toto: String a = "ahoj"; String b = "ahoj"; if (a != b) System.out.println("a different from b"); //mohlo by se vypsat a.intern(); b.intern(); if (a == b) System.out.println("a same as b"); //musí se vypsat Nejsem si tím jistý, ale myslím, že takhle to funguje ... equals samozřejmě vrátí v obou případech true (imlementace equals u stringu myslím interně to intern právě volá). Honza Kamzik-II napsal(a): Zdravim diskuzi, mam opet jeden zacatecnicky dotaz :) Tentokrat by me zajimalo, jake vyuziti ma metoda intern () tridy java.lang.String, zaujalo me tohle: String helloWorld = "HelloWorld"; String hello = "Hello"; String world = "World"; helloWorld == ( hello + world ).intern (); mohl by mi nekdo vysvetlit k cemu je tato metoda dobra? :)
Re: java.lang.String.intern()
Máte pravdu. H. Kamzik-II napsal(a): Nemelo to byt spis takhle? String a = "ahoj"; String b = "ahoj"; if (a != b) System.out.println("a different from b"); //mohlo by se vypsat a = a.intern(); b = b.intern(); if (a == b) System.out.println("a same as b"); //musí se vypsat ----- Original Message - From: ""Ing. Jan Novotný"" <[EMAIL PROTECTED]> To: "Java" Sent: Thursday, September 28, 2006 12:08 PM Subject: Re: java.lang.String.intern() Nejsem si jistý, ale nezajistí se touto metodou, že konkrétní string bude na haldě pouze jednou? Tzn. že je teoreticky možné toto: String a = "ahoj"; String b = "ahoj"; if (a != b) System.out.println("a different from b"); //mohlo by se vypsat a.intern(); b.intern(); if (a == b) System.out.println("a same as b"); //musí se vypsat Nejsem si tím jistý, ale myslím, že takhle to funguje ... equals samozřejmě vrátí v obou případech true (imlementace equals u stringu myslím interně to intern právě volá). Honza Kamzik-II napsal(a): Zdravim diskuzi, mam opet jeden zacatecnicky dotaz :) Tentokrat by me zajimalo, jake vyuziti ma metoda intern () tridy java.lang.String, zaujalo me tohle: String helloWorld = "HelloWorld"; String hello = "Hello"; String world = "World"; helloWorld == ( hello + world ).intern (); mohl by mi nekdo vysvetlit k cemu je tato metoda dobra? :)
Re: Serializace objektu, ktery obsahuje neserializovane cleny
Označíš ho jako "transient" a on se ti vynechá. Po deserializaci bude null, takže si musíš ošetřit aby se v takovém případě znovu sám vytvořil. O podrobnostech se dočteš v každé lepší knížce o Javě. Honza Benda Lukas napsal(a): Mam tridu, ktera je serializable a obsahuje protected parametr logger. Chci takovou tridu preda pomoci RMI, ale havaruje to prave na tom, ze logger neni serializovany. Prve jsem byl presvedcen, ze privatni objekty se neserializuji, jenze ono jo. Coz mne docela mrzi, protoze vlastne kazda moje trida ma logger. Musim tedy pro kazdou tridu definovat metodu writeExternal(), readExternal(), nebo se to da nejak obejit. Pomuze kdyz bude logger private? Neexituje nejaka anotace kterou bych oznacil cleny objektu ktere se namaji serializovat? Co se stane kdyz pak chce objekt zalogovat? Jak takovy problem resite? Ta chyba je konkretne tato: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.apache.log4j.Logger S pozdravem Lukáš Benda [EMAIL PROTECTED] APNetsoft s.r.o. Hradecká 15 746 01, Opava tel.: +420 553 642 111 fax.: +420 553 619 205 mobil.: +420 777 577 054 http://www.apnet.cz -- Ing. Jan Novotný Software Engineer Fincom-Materna Communications, a.s. SNP 402, 500 03 Hradec Králové 3 Czech Republic
Re: Maven kodovani zdroju
Zdravím, no ant je klíčem - doteď nechápu proč podporu native2ascii nedali rovnou do Mavenu. Asi proto, že nikdo z nich není z takových exotických zemí jako jsou třeba Čechy ;). Já jsem to rozchodil takto: maven-antrun-plugin generate-sources classname="org.apache.tools.ant.taskdefs.optional.Native2Ascii" classpathref="maven.compile.classpath" > dest="src/main/resources/translated/" includes="*.properties" encoding="UTF-8"/> run Ještě je nutné dát do dependencí knihovny anta se scope=compile (povšimněte si že v classpathref="maven.compile.classpath"): ant ant 1.6.5 compile antlr antlrall 2.7.4 compile ant ant-optional 1.5.3-1 compile Mě to chodí, takže snad to bude chodit i vám. Honza Novotný Benda Lukas napsal(a): Pouzivam ke kompilovani Maven2. V antu jsem pro cestinu pouzival dest="${class.dir}/resource" includes="**/messages/*.properties" /> Jenze v mavenovi nevim jak ho dokopat k tomu aby konvertoval soubory do asci aby se mi to zobrazovalo spravne. Zkousel jsem jak nastaveni: org.apache.maven.plugins maven-compiler-plugin 2.0.1 p 1.5 1.5 utf-8 org.apache.maven.plugins maven-resources-plugin 2.2 utf-8 Ktere ale nedela ocividne vubec nic. Tak nastaveni pomoci anta: maven-antrun-plugin generate-sources classname="org.apache.tools.ant.taskdefs.optional.Native2Ascii" classpathref="maven.dependency.classpath" > dest="src/target/resources/" includes="**/*.properties" /> run Ktere zase konci havarii anta (s blize neurcenou chybou). Jak tento problem resite vy? Lukas "benzin" Benda ([EMAIL PROTECTED]; http://benzin.bloguje.cz) Java a Delphi programator PHP a _javascript_ skrypter Tvurce databazovych aplikaci A "cestinarsky" ignorant
Re: Maven kodovani zdroju
To je zvláštní - čekal bych spíš něco jako ClassNotFound exception nebo tak. S NullPointrem nevím. Zajímavé informace byste možná našel v tomhle článku: http://jroller.com/page/wakaleo?entry=maven_2_tip_using_tools Honza N. Benda Lukas napsal(a): JJ presne tohle jsem zkousel jenze mi ta kompilace konci takhle: [INFO] Error executing ant tasks Embedded error: java.lang.NullPointerException A odsud se nemuzu hnout Lukas "benzin" Benda ([EMAIL PROTECTED]; http://benzin.bloguje.cz) Java a Delphi programator PHP a _javascript_ skrypter Tvurce databazovych aplikaci A "cestinarsky" ignorant Zdravím, no ant je klíčem - doteď nechápu proč podporu native2ascii nedali rovnou do Mavenu. Asi proto, že nikdo z nich není z takových exotických zemí jako jsou třeba Čechy ;). Já jsem to rozchodil takto: maven-antrun-plugin generate-sources classname="org.apache.tools.ant.taskdefs.optional.Native2Ascii" classpathref="maven.compile.classpath" > dest="src/main/resources/translated/" includes="*.properties" encoding="UTF-8"/> run Ještě je nutné dát do dependencí knihovny anta se scope=compile (povšimněte si že v classpathref="maven.compile.classpath"): ant ant 1.6.5 compile antlr antlrall 2.7.4 compile ant ant-optional 1.5.3-1 compile Mě to chodí, takže snad to bude chodit i vám. Honza Novotný Benda Lukas napsal(a): Pouzivam ke kompilovani Maven2. V antu jsem pro cestinu pouzival dest="${class.dir}/resource" includes="**/messages/*.properties" /> Jenze v mavenovi nevim jak ho dokopat k tomu aby konvertoval soubory do asci aby se mi to zobrazovalo spravne. Zkousel jsem jak nastaveni: org.apache.maven.plugins maven-compiler-plugin 2.0.1 p 1.5 1.5 utf-8 org.apache.maven.plugins maven-resources-plugin 2.2 utf-8 Ktere ale nedela ocividne vubec nic. Tak nastaveni pomoci anta: maven-antrun-plugin generate-sources classname="org.apache.tools.ant.taskdefs.optional.Native2Ascii" classpathref="maven.dependency.classpath" > dest="src/target/resources/" includes="**/*.properties" /> run Ktere zase konci havarii anta (s blize neurcenou chybou). Jak tento problem resite vy? Lukas "benzin" Benda ([EMAIL PROTECTED]; http://benzin.bloguje.cz) Java a Delphi programator PHP a _javascript_ skrypter Tvurce databazovych aplikaci A "cestinarsky" ignorant -- Ing. Jan Novotný Software Engineer Fincom-Materna Communications, a.s. SNP 402, 500 03 Hradec Králové 3 Czech Republic
Re: Tiles a message key
Zdravím, jen se chci optat na váš názor. Jaké výhody oproti JSP 2.0 custom tags psaných v JSP, přinášejí Tiles v dnešní době? Zdá se mi, že přínosy spočívaly především v řešení neřešené problematiky pro webovské aplikace (mluvím o době před 2-3 lety), kterou bylo rozumné skládání stránek, kde část je dynamická, část statická (aniž by musel člověk psát neustále include). Honza Novotný Radovana Straube napsal(a): Dobry den, pouzivam tiles, kde definicia je napisana v XML a nie v JSP-stranke. Chcem napriklad hodnotu "title" citat z ResourceBundle pomocou . V tiles som zatial nasla len moznost precitat string priamo z XML . Bohuzial sa tento string neda pouzivat ako key do mojho ResourceBundle. Priklad mojej definicie tiles: ... Zda sa mi velmi podivne, ze by tiles nepodporovali internacionalizaciu, ale jednoducho som nic nevygooglila. Dakujem za pripadne rady Radovana Straube Sponsored Link Degrees online in as fast as 1 Yr - MBA, Bachelor's, Master's, Associate Click now to apply http://yahoo.degrees.info
Re: Tiles a message key
No já teda nevím. Zkuste se třeba podívat na demo knihovny Tobago - odkoukal jsem odtud jejich způsob skládání stránek. Např. typická stránka tam vypadá takto: <%@ page contentType="text/html" pageEncoding="UTF-8" %> <%@ taglib prefix="my" tagdir="/WEB-INF/tags" %> nějaké HTML stránky Pak mají v JSP napsaný tag LAYOUT, který vypadá zhruba takto: <%@ tag body-content="scriptless" pageEncoding="UTF-8" %> <%@ attribute name="menu" required="true" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib prefix="my" tagdir="/WEB-INF/tags" %> Všechno až stupidně jednoduché, funkční a krásně se to skládá dohromady. Asi máte pravdu, že je to deklarování směrem odspodu, kdybych chtěl změnit layout u dvaceti stránek musel bych u všech dvaceti upravit JSP na použití jiného tagu nebo modifikaci atributů. Ale jinak se mi ten přístup hodně líbí - zdá se mi jednoduchý a funkční. Z mého pohledu lepší než "zamořovat" (berte to s nadsázkou) projekt další technologií. Honza Novotný Jiří Mareš napsal(a): Rozdil je vtom, ze tiles nabizeji skladani zhora dolu, kdezto tagy sdola nahoru. Co tim myslim ... V tiles mas layout, do ktereho parametricky vkladas soucasti. Kdezto tag ti umozni vlozit soucast do stranky ... Tj. tiles je super vec a na verzi JSP nezalezi. Jenom me mrzi, ze si nedali tu praci prepsat standard taglib library tak, aby podporoval novy space pro promenne typu "tile" a je nutne psat nepekne importy atributu, abyse dali pouzit ... Ing. Jan Novotný napsal(a): Zdravím, jen se chci optat na váš názor. Jaké výhody oproti JSP 2.0 custom tags psaných v JSP, přinášejí Tiles v dnešní době? Zdá se mi, že přínosy spočívaly především v řešení neřešené problematiky pro webovské aplikace (mluvím o době před 2-3 lety), kterou bylo rozumné skládání stránek, kde část je dynamická, část statická (aniž by musel člověk psát neustále include). Honza Novotný Radovana Straube napsal(a): Dobry den, pouzivam tiles, kde definicia je napisana v XML a nie v JSP-stranke. Chcem napriklad hodnotu "title" citat z ResourceBundle pomocou . V tiles som zatial nasla len moznost precitat string priamo z XML . Bohuzial sa tento string neda pouzivat ako key do mojho ResourceBundle. Priklad mojej definicie tiles: ... Zda sa mi velmi podivne, ze by tiles nepodporovali internacionalizaciu, ale jednoducho som nic nevygooglila. Dakujem za pripadne rady Radovana Straube ____________ Sponsored Link Degrees online in as fast as 1 Yr - MBA, Bachelor's, Master's, Associate Click now to apply http://yahoo.degrees.info -- Ing. Jan Novotný Software Engineer Fincom-Materna Communications, a.s. SNP 402, 500 03 Hradec Králové 3 Czech Republic
Re: Tiles a message key
ad 1) v tomhle případě by mi stačilo taky asi změnit jen obsah toho "layout" tagu - spíš tady ale záleží na tom jak chytře si to poskládáte ad 2) no v tiles přeci také musíte nějak říct, pro kterou stránku se má použít jaký layout ne? Když jsem pročítal dokumentaci, tak jsem dokonce nabyl pocit, že pro stránku musíte mít 2 soubory - jeden, kde vepíšete definici tiles (tiles tagy), jak se má stránka poskládat a teprve v druhé máte tu "dynamickou" body. Tzn. že pro dejme tomu pět různých stránek byste musel mít 10 souborů?! Ale je dost možné že jsem to jen špatně pochopil. ad 4) já to neberu jako přemlouvání ani vás nechci k ničemu přemlouvat - chtěl jsem jen od uživatelů tiles znát výhody téhle knihovny, protože já jsem je na první pohled neobjevil. Honza Novotný Jiří Mareš napsal(a): Jasne, to je ono ... 1) co kdyz budu chtit na jedne strance za menu pridat nejake HTML?? V tiles pouze reknu ze oblast menu nema pouzit menu.jsp ale moje-menu.jsp a v tom jspicku includnu menu.jsp a pridam tam co potrebuji. 2) jste si odpovedel sam, na vsech strankach musite pouzit tag , coz nepovazuji za tak velky problem, ale je to zbytecne 3) tiles nejsou slozite, jsou naopak desne jednuduche a pruhledne, tj. o zamorovani dalsi technologii bych nehovoril, jsou mnohem horsi veci napr. JSF 4) ja vas nepremlouvam, ptal jste se a ja odpovidam, stranky delejte jak se vam chce Hezky den Ing. Jan Novotný napsal(a): No já teda nevím. Zkuste se třeba podívat na demo knihovny Tobago - odkoukal jsem odtud jejich způsob skládání stránek. Např. typická stránka tam vypadá takto: <%@ page contentType="text/html" pageEncoding="UTF-8" %> <%@ taglib prefix="my" tagdir="/WEB-INF/tags" %> nějaké HTML stránky Pak mají v JSP napsaný tag LAYOUT, který vypadá zhruba takto: <%@ tag body-content="scriptless" pageEncoding="UTF-8" %> <%@ attribute name="menu" required="true" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib prefix="my" tagdir="/WEB-INF/tags" %> Všechno až stupidně jednoduché, funkční a krásně se to skládá dohromady. Asi máte pravdu, že je to deklarování směrem odspodu, kdybych chtěl změnit layout u dvaceti stránek musel bych u všech dvaceti upravit JSP na použití jiného tagu nebo modifikaci atributů. Ale jinak se mi ten přístup hodně líbí - zdá se mi jednoduchý a funkční. Z mého pohledu lepší než "zamořovat" (berte to s nadsázkou) projekt další technologií. Honza Novotný Jiří Mareš napsal(a): Rozdil je vtom, ze tiles nabizeji skladani zhora dolu, kdezto tagy sdola nahoru. Co tim myslim ... V tiles mas layout, do ktereho parametricky vkladas soucasti. Kdezto tag ti umozni vlozit soucast do stranky ... Tj. tiles je super vec a na verzi JSP nezalezi. Jenom me mrzi, ze si nedali tu praci prepsat standard taglib library tak, aby podporoval novy space pro promenne typu "tile" a je nutne psat nepekne importy atributu, abyse dali pouzit ... Ing. Jan Novotný napsal(a): Zdravím, jen se chci optat na váš názor. Jaké výhody oproti JSP 2.0 custom tags psaných v JSP, přinášejí Tiles v dnešní době? Zdá se mi, že přínosy spočívaly především v řešení neřešené problematiky pro webovské aplikace (mluvím o době před 2-3 lety), kterou bylo rozumné skládání stránek, kde část je dynamická, část statická (aniž by musel člověk psát neustále include). Honza Novotný Radovana Straube napsal(a): Dobry den, pouzivam tiles, kde definicia je napisana v XML a nie v JSP-stranke. Chcem napriklad hodnotu "title" citat z ResourceBundle pomocou . V tiles som zatial nasla len moznost precitat string priamo z XML . Bohuzial sa tento string neda pouzivat ako key do mojho ResourceBundle. Priklad mojej definicie tiles: ... Zda sa mi velmi podivne, ze by tiles nepodporovali internacionalizaciu, ale jednoducho som nic nevygooglila. Dakujem za pripadne rady Radovana Straube Sponsored Link Degrees online in as fast as 1 Yr - MBA, Bachelor's, Master's, Associate Click now to apply http://yahoo.degrees.info -- *Ing. Jan Novotný* /Software Engineer/ ---
Dnešní CZJUG
Zdravím konferenci, chci se zeptat, jestli bude dnešní CZJUG přenášen živě nebo ne. Případně kde bude možné online přenos najít? A otázka druhá - bylo by možné, co se týká záznamů z těchto setkání, publikovat alespoň záznam ve formátu MP3 v nějaké rozumější době než se objevují ta videa? Je mi jasné že to dělají študáci ve volném čase a sestříhání filmu přeci jen zabere nějaký ten čas. Co se ale týká zvukového záznamu, ten stříhat nemusejí a převedení z wavky do mp3 je záležitost pár minut. Ideální by bylo, kdyby třebas ten audio záznam mohl na webu viset už třeba druhý nebo třetí den po setkání a video klidně časem. Myslím, že je řada lidí, kteří by na video ani nečekali a poslechli si audio jako podcast v mobilu nebo mp3 přehrávači. Co vy na to? Honza Novotný
Re: Dnešní CZJUG
Zdravím, tam není u dnešního setkání uvedeno online (nebo jsem špatně hledal). Tzn. dnešní teda online přenášeno nebude? Romane, nemáš nějaký bližší informace? Byla by to pro nás mimopražské velká rána ;). Honza Jan Karhánek napsal(a): Dobry den, podivejte se na stranky: http://avc.sh.cvut.cz/ skoda jen, ze videa prichazi docela s velkym zpozdenim. Asi neni na to moc casu, skoda. Ale skvely zdroj informaci! !DSPAM:144,45656d64246451882718843!
Re: Dnešní CZJUG
Ahoj, oni tam MP3 záznam obvykle uveřejňují (viz. sektání1 a 2). Probém je v tom, že až v době, kdy se zveřejňuje i video - což je třeba o celý měsíc později. Přitom jak říkám - kolikrát člověk vůbec nemusí ty prezenační slidy vidět, aby přednášce rozuměl - tedy to je alespoň má zkušenost z CZJugů na kterých jsem byl. Opravdu by mnohokrát MP3 verze bohatě stačila - jen kdyby byla včas. Honza Vaclav Pech napsal(a): Ahoj, chtěl bych se přidat k návrhu pana Novotného na mp3 záznam. Připadá mi to jako dobrý nápad mít možnost si záznam jednoduše poslechnout. Tím samozřejmě nezpochybňuji pořizování video záznamu. Vašek Roman Strobl wrote: Ahoj, Ing. Jan Novotný wrote: Zdravím konferenci, chci se zeptat, jestli bude dnešní CZJUG přenášen živě nebo ne. Případně kde bude možné online přenos najít? Ne, nebude prenasen zive, zive vysilani vyzaduje hodne usili (asi 6 lidi to obsluhovalo na prvnim CZJUG). A otázka druhá - bylo by možné, co se týká záznamů z těchto setkání, publikovat alespoň záznam ve formátu MP3 v nějaké rozumější době než se objevují ta videa? Je mi jasné že to dělají študáci ve volném čase a sestříhání filmu přeci jen zabere nějaký ten čas. Co se ale týká zvukového záznamu, ten stříhat nemusejí a převedení z wavky do mp3 je záležitost pár minut. Ideální by bylo, kdyby třebas ten audio záznam mohl na webu viset už třeba druhý nebo třetí den po setkání a video klidně časem. Myslím, že je řada lidí, kteří by na video ani nečekali a poslechli si audio jako podcast v mobilu nebo mp3 přehrávači. Co vy na to? To je otazka na AVC SH, zeptame se jich dneska vecer na miste. Ja bych byl radeji, kdyby zpracovavali ta videa vcas - rikali ze by to melo byt v budoucnosti lepsi. -Roman !DSPAM:144,456573f9281665921116689!
Re: Dnešní CZJUG
Ahoj, já si toho jsem vědom. Jsem rád, že to pro nás vůbec dělají - těžko si můžeme něco vydupávat, když za to neplatíme že ;). Pokud to nebude, tak to nebude - nic s tím nenaděláme a ani nemáme právo se na někoho zlobit. Mínil jsem to jenom jako návrh. Kdyby to pomohlo, jsem ochotný přiložit ruku k dílu - odněkud stáhnout wav, zkonvertovat do mp3 a zase to někam uploadnout, ale řekl bych, že zrovna v tomhle asi problém nebude ;). Honza Roman Strobl napsal(a): Ing. Jan Novotný wrote: Ahoj, oni tam MP3 záznam obvykle uveřejňují (viz. sektání1 a 2). Probém je v tom, že až v době, kdy se zveřejňuje i video - což je třeba o celý měsíc později. Přitom jak říkám - kolikrát člověk vůbec nemusí ty prezenační slidy vidět, aby přednášce rozuměl - tedy to je alespoň má zkušenost z CZJugů na kterých jsem byl. Opravdu by mnohokrát MP3 verze bohatě stačila - jen kdyby byla včas. Ok, rekneme to AVC. Nezapominejte, ze to delaji zadarmo, takze pokud to pro ne bude znamenat vic prace, tak to asi nebude. V budoucnosti bychom mohli pro CZJUG zalozit neziskovku a pak by se i resilo financovani, sponsoring, atd., ale popravde se nam do toho prozatim nechce, protoze to znamena hodne prace, casu a byrokracie navic. Takze jsme radi za to, ze nam AVC zprostredkovava takovouto sluzbu zadarmo. -Roman Vaclav Pech napsal(a): Ahoj, chtěl bych se přidat k návrhu pana Novotného na mp3 záznam. Připadá mi to jako dobrý nápad mít možnost si záznam jednoduše poslechnout. Tím samozřejmě nezpochybňuji pořizování video záznamu. Vašek Roman Strobl wrote: Ahoj, Ing. Jan Novotný wrote: Zdravím konferenci, chci se zeptat, jestli bude dnešní CZJUG přenášen živě nebo ne. Případně kde bude možné online přenos najít? Ne, nebude prenasen zive, zive vysilani vyzaduje hodne usili (asi 6 lidi to obsluhovalo na prvnim CZJUG). A otázka druhá - bylo by možné, co se týká záznamů z těchto setkání, publikovat alespoň záznam ve formátu MP3 v nějaké rozumější době než se objevují ta videa? Je mi jasné že to dělají študáci ve volném čase a sestříhání filmu přeci jen zabere nějaký ten čas. Co se ale týká zvukového záznamu, ten stříhat nemusejí a převedení z wavky do mp3 je záležitost pár minut. Ideální by bylo, kdyby třebas ten audio záznam mohl na webu viset už třeba druhý nebo třetí den po setkání a video klidně časem. Myslím, že je řada lidí, kteří by na video ani nečekali a poslechli si audio jako podcast v mobilu nebo mp3 přehrávači. Co vy na to? To je otazka na AVC SH, zeptame se jich dneska vecer na miste. Ja bych byl radeji, kdyby zpracovavali ta videa vcas - rikali ze by to melo byt v budoucnosti lepsi. -Roman !DSPAM:144,45657ada296391591412400!
Re: Netbeans, Coyote, Groovy a Maven: Jde to vubec dohromady?
Ahoj, něco podobného jsem už řešil - nenapíšu přesně postup, ale stačilo: 1) nainstalovat java 1.6 se kterou se spouští NetBeans (kompilovat můžeš klidně s 1.5) -> pak myslím půjdou uvozovky ale ne apostrof (nebo rovnítko - teď nevím) 2) oeditovat v soubor s mapování kláves - a to už tuplem z hlavy nedám dokupy -> to vyřešilo ten druhý problém Tahle chyba se mi stávala v Ubuntu linuxu - verzi Dapper. Na internetu se určitě najdou podrobnosti. Bohužel nejsem žádný linux guru, takže ti tu nevysmahnu přesný návod - je to jen taková směrovka kudy. Je možné že pokud máš jiný typ linuxu, bude to chtít něco jiného. Honza Martin Podhola napsal(a): Ahoj, kdyz uz se tu resin netbeans, tak bych prihodil jeste jednu otazku na nej, mam verzi 5, v 5.5 nefunguje linux instalator a nepodarilo se mi ho nainstallit, nicmene v te verzi 5 vse funguje, jen mi to nechce psat uvozovky , musim je copy n paste z jineho okna kam si je napisu, je to trosku otravne, nevite nekdo prosim co s tim, Diky MartinTomas Hubalek píše v St 13. 12. 2006 v 15:13 +0100: Zdar, Donedavna jsem pouzival Eclipse a Maven na spravu projektu. U projektu slo dat soucasne Groovy Nature a Maven Nature a vsechno mohlo jakztakz fungovat. U Netbeans toho nejsem schopen docilit. Jde to? A jak se to dela? Dik Tom !DSPAM:144,458025ef206221915974989!
Re: JSF puvodce udalosti?
Zdravím, uznávám, že tutorial od Sunů je příšerně dlouhý - ale je to tam ;) http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSFDevelop7.html#wp1003962 Link vypadá takto: actionListener="#{localeBean.chooseLocaleFromLink}"> A jak má vypadat hlavička metode je popsáno v kapitole, na kterou míří odkaz. V parametru máte objekt ActionEvent a z něj se dá zjistit id source komponenty. V případě, že se jedná o nějaký znovupoužitelný kód zpracování události, dá se zpracování vyjmout do extra třídy a nadefinovat obecný action listener přímo ve faces-config.xml - to je v tutoriálu taky popsané. Honza Jaroslav Kortus napsal(a): Dobry den, mam JSF stranku se 3 butonama, kazdy ma sve id a ostatni zajimave atributy.. :). Vsechny tri butony maji v action event handleru nastavenu tutez metodu. Lze nyni z teto metody zjistit (napr. pomoci id), ktery ze tri butonu tuto udalost vyvolal? Jak? Dekuji. !DSPAM:144,4581fe97299911591412400!
Re: JSF- strankovani v datable
Zdravím, no já k tomu účelu používal komponentu z rodiny Tomahawk DataScroller (http://myfaces.apache.org/tomahawk/dataScroller.html). Funguje to poměrně dobře, ale dokumentaci bych si představoval bohatší - za některou funkčností jsem musel do jejich zdrojáků, což nepovažuji za dobře zdokumentovanou komponentu Honza Novotný Holoubek, Vaclav (EOT) napsal(a): Dobry den, jak se resi strankovani v JSF komponente datatable ??? Koukal jsem , ze se necha nastavit po kolika radcich se mají data zobrazit. Da se zobrazit i navigace mezi strankami, ale nikde jsem nenasel jak se spravne resi zobrazovani jednotlivých stranek a pohyb mezi nimi. Diky Holoubek. !DSPAM:144,4587ee0b284941915974989!
Java Podcasty
Zdravím, chci se zeptat jaké posloucháte podcasty o Javě - mě to připadlo jako skvělý způsob vzdělávání v čase, který je jinak plonkový (někam jdete a tak). Bohužel se mi podařilo najít jen málo zdrojů rozumných podcastů, které uvádím: http://javaposse.com/ http://www4.java.no/ a samozřejmě CZ Podcasty na http://www.java.cz Nevíte ještě o nějakých dalších kvalitních? Podělte se ... Honza N.
Re: JSF tlačítko v tabulce nezavolá akci
Zdravím, my jsme včera s kolegou narazili na obdobný (ale pravděpodobně jiný problém). Používáme MyFaces implementaci (1.1.4). Na stránce máme a v něm umístěné Tomahawk komponenty pagescroller a datatable. Z neznámého důvodu se nám ve vygenerované stránce u uzavíracího tagu formu negeneruje javascriptová metoda "clear__" takže nefungují žádné odkazy v celém formuláři. Strávili jsme na tom hodně času a nepřišli jsme na nic. Zajímavé je, že v aplikaci máme obdobné 2 další stránky, které jsou postavené úplně stejně a v nich všechno funguje. Také jsme šli cestou postupného odebírání, ale javascript se vygeneroval jen tehdy, když ve formuláři zůstala jediná jednoduchá komponenta a to commandlink - jakmile jsme přidali cokoliv z původního obsahu, opět javascript zmizel. Dost nepříjemná záhada. Pokud byste někdo věděl co s tím, uvítáme jakoukoliv radu. Myslím, že nakonec ale stejně skončíme ve zdrojových kódech MyFaces :(. Honza Novotný Jiří Mikulášek napsal(a): Hezký den, díky za tipy: ad 1. máme ad 2. pokud hledám dobře tak není ad 3. právě jsem vyzkoušel, výsledkem je, že to funguje, ale stále nechápu proč. Udělal jsem to že jsem ze stránky odstranil všechno krom tabulky a sloupce s tlačítkem. V ten okamžik talčítko fungovalo, pak jsem postupně přidával zpět komponenty až jsem se dostal do původního stavu a nevěřícně koukal na ot že to funguje. Blbý je že vlastně pořád nevím kde byl zakopanej pes :-( Pokud někoho ještě napadají důvody rád se je dozvím :-) Dne pondělí 22 leden 2007 20:28 Jiří Hradil napsal(a): Ahoj, přímo webuijsf nepoužíváme, ale: 1. Máte to ve formu? 2. Není někde na stránce JSF prvek, který má prázdnou value? To Faces nemají rády a metody na tlačítkách pak nevolají. 3. Klasický postup - vyházet ze stránky všechno, co tam nemá co dělat a všechno napojit na primitivní JSF backing bean s jednou metodou, pak se to líp zkoumá :). Jirka Hradil On 1/22/07, Jiří Mikulášek <[EMAIL PROTECTED]> wrote: Hezký den, mám řekl bych možná klasický problém, ale nencházím odpověď. Používám webuijsf. Následující konstrukce nezavolá akcni metodu hello. Mimo tabulku to samo funguje. Zkousel jsem ekvivalnetni konstrukci i za pouziti std JSF a take nepomohlo. Zkousel sjem tlacitko nabindovat, odbindovat, menit id (podle radku). Ve strance jsou atp. nepodarilo se mi urcit pricinu a tudiz ani najit reseni. Budu vdecny za kazdy napad -- Pírko Bc. Jiří Mikulášek E-mail: [EMAIL PROTECTED] || [EMAIL PROTECTED] Tel:+420 721 571 280 ICQ#330718616 Skype: pirkojm web:http://pirko.bloguje.cz http://www.fi.muni.cz/~xmikula2 -
Re: JPA a enum
Ahoj, netus(ím, jestli to standard JPA r(es(í ne(jak obecne(, ale pro hibernate jsem musel provést následující ve(c. Je to pome(rne( c(astý problém r(es(ený v ne(kolika diskusních threadech (link ted( dohromady nedám, protoz(e bych ho musel znovu hledat). Pr(ikládám zdrojáky mého modelu, kde jsou enumerace pouz(ity a r(es(ení pro Hibernate ORM. Du*lez(ité jsou tr(ídy: Enum tr(ídy: Gender a SkillLevel Helper classy pro Hibernate: EnumUserType> GenderUserType extends EnumUserType SkillLevelUserType extends EnumUserType které r(íkají Hibernate, jak se má k daným Enum hodnotám chovat pr(i persistování a nac(ítání. Vlastní definice v HBM XML je potom napr(. pro Goalkeepera, který pouz(ívá Enumy takováto: '-//Hibernate/Hibernate Mapping DTD 3.0//EN' 'http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd'> Taky bych si to pr(edstavoval jednodus(s(í ;) Novoj -- -------------- Ing. Jan Novotný @@ http://blog.novoj.net Mys(lenky dne otce Fura -- Tomas Hubalek napsal(a): Zdar, mam takovy dotaz. Chtel bych udelat JPA mapping (Hibernate, ale to snad neni podstatne) nasledujicich trid a nevim, jak to oannotovat. public enum Group { A, B, C} @Entity public class Person { ... @? Set groups; ... } Pokud chci jenom jednu property, tak jde pouzit @Enumerated(), ale pro Set to nefunguje. Mate nekdo nejaky tip? Nebo mam obetovat enum a udelat si UserType. Tom !DSPAM:144,45c1d9e5253311903020241! /* * TeamMember.java * * Created on 14. listopad 2006, 21:39 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package com.fgf.ot.model; import com.fgf.ot.exception.ValidateException; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; import java.io.Serializable; /** * Ancestor for every team member. * * @author Rodina Novotnych */ public abstract class TeamMember implements Serializable, Cloneable { /** * Serial uid. */ static final long serialVersionUID = 56277198694141L; /** * Unique id. */ private Long id; /** * Firstname. */ private String firstname; /** * Surname. */ private String surname; /** * Age. */ private Integer age; /** * Gender. */ private Gender gender; /** * Getter. * * @return */ public Long getId() { return id; } /** * Setter. * * @param id */ public void setId(Long id) { this.id = id; } /** * Getter. * * @return */ public String getFirstname() { return firstname; } /** * Setter. * * @param firstname */ public void setFirstname(String firstname) { this.firstname = firstname; } /** * Getter. * * @return */ public String getSurname() { return surname; } /** * Setter. * * @param surname */ public void setSurname(String surname) { this.surname = surname; } /** * Getter. * * @return */ public Integer getAge() { return age; } /** * Setter. * * @param age */ public void setAge(Integer age) { this.age = age; } /** * Getter. * * @return */ public Gender getGender() { return gender; } /** * Setter. * * @param gender */ public void setGender(Gender gender) { this.gender = gender; } /** * Performs work, that member of this type should do. * * @return simple string representing object`s activity */ public abstract String work(); /** * Validates objects itself whether it has initialized all mandatory fields, and that fields contains valid * values. * * @throws ValidateException when any error has been found */ pub
Re: JPA a enum
No ono, to nakonec není tak hrozné. Děděné třídy z EnumUserType už jsou směšně jednoduché. Toto jsem řešil v listopadu loňského roku, tak kdo ví - třebas už zařadili do Hibernate větší podporu Enumeration. Ono by bohatě stačilo, kdyby se ta třída EnumUserType dala vzít odněkud od nich - takhle kopírovat celou třídu je hnus. Každopádně je to řešení, které se doporučuje na fórech a je to funkční řešení - to můžu potvrdit z vlastní zkušenosti :). Novoj Tomas Hubalek napsal(a): No to je teda masicko :-/ Neco podobneho jsem nasel na hibernate.org, ale nadsenim me to nenaplnuju. Pokud nenajdu nic citelnejsiho, udelam ten enum jako normalni @Entity. Tom *From:* [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] *On Behalf Of *"Ing. Jan Novotný" *Sent:* Thursday, February 01, 2007 1:27 PM *To:* Java *Subject:* Re: JPA a enum Ahoj, netuším, jestli to standard JPA řeší nějak obecně, ale pro hibernate jsem musel provést následující věc. Je to poměrně častý problém řešený v několika diskusních threadech (link teď dohromady nedám, protože bych ho musel znovu hledat). Přikládám zdrojáky mého modelu, kde jsou enumerace použity a řešení pro Hibernate ORM. Důležité jsou třídy: Enum třídy: Gender a SkillLevel Helper classy pro Hibernate: EnumUserType> GenderUserType extends EnumUserType SkillLevelUserType extends EnumUserType které říkají Hibernate, jak se má k daným Enum hodnotám chovat při persistování a načítání. Vlastní definice v HBM XML je potom např. pro Goalkeepera, který používá Enumy takováto: '-//Hibernate/Hibernate Mapping DTD 3.0//EN' 'http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd'> Taky bych si to představoval jednodušší ;) Novoj -- ------------------ Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura -- Tomas Hubalek napsal(a): Zdar, mam takovy dotaz. Chtel bych udelat JPA mapping (Hibernate, ale to snad neni podstatne) nasledujicich trid a nevim, jak to oannotovat. public enum Group { A, B, C} @Entity public class Person { ... @? Set groups; ... } Pokud chci jenom jednu property, tak jde pouzit @Enumerated(), ale pro Set to nefunguje. Mate nekdo nejaky tip? Nebo mam obetovat enum a udelat si UserType. Tom !DSPAM:144,45c1df8f291125315134984!
Re: JPA a enum
No vidíte to, to je tak, když člověk čte maily povrchně - toho Setextends Enum> jsem si nevšimnul. To moje řešení je jen na jednotlivou property - a řešení pomocí anotace @Enumerated je rozhodně elegantnější. Buďto v té době nebylo, nebo jsem na něj při hledání řešení nenarazil. Takže zpátky na stromy, všechno špatně :) Omlouvám se za zavádějící cestu. Novoj Tomas Hubalek napsal(a): Jo to dedeni je OK, s tim nemam problem. Dokonce bych rekl, ze pokud se jedna o jednotlivou property tak muzu pouzit tu anotaci @Enumerated a taky to funguje. Ale nevsiml jsem si ve vasich prikladech toho, ze by to byla property typu Set Dik Tom *From:* [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] *On Behalf Of *"Ing. Jan Novotný" *Sent:* Thursday, February 01, 2007 2:38 PM *To:* Java *Subject:* Re: JPA a enum No ono, to nakonec není tak hrozné. Děděné třídy z EnumUserType už jsou směšně jednoduché. Toto jsem řešil v listopadu loňského roku, tak kdo ví - třebas už zařadili do Hibernate větší podporu Enumeration. Ono by bohatě stačilo, kdyby se ta třída EnumUserType dala vzít odněkud od nich - takhle kopírovat celou třídu je hnus. Každopádně je to řešení, které se doporučuje na fórech a je to funkční řešení - to můžu potvrdit z vlastní zkušenosti :). Novoj Tomas Hubalek napsal(a): No to je teda masicko :-/ Neco podobneho jsem nasel na hibernate.org, ale nadsenim me to nenaplnuju. Pokud nenajdu nic citelnejsiho, udelam ten enum jako normalni @Entity. Tom *From:* [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> [mailto:[EMAIL PROTECTED] *On Behalf Of *"Ing. Jan Novotný" *Sent:* Thursday, February 01, 2007 1:27 PM *To:* Java *Subject:* Re: JPA a enum Ahoj, netuším, jestli to standard JPA řeší nějak obecně, ale pro hibernate jsem musel provést následující věc. Je to poměrně častý problém řešený v několika diskusních threadech (link teď dohromady nedám, protože bych ho musel znovu hledat). Přikládám zdrojáky mého modelu, kde jsou enumerace použity a řešení pro Hibernate ORM. Důležité jsou třídy: Enum třídy: Gender a SkillLevel Helper classy pro Hibernate: EnumUserType> GenderUserType extends EnumUserType SkillLevelUserType extends EnumUserType které říkají Hibernate, jak se má k daným Enum hodnotám chovat při persistování a načítání. Vlastní definice v HBM XML je potom např. pro Goalkeepera, který používá Enumy takováto: '-//Hibernate/Hibernate Mapping DTD 3.0//EN' 'http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd'> Taky bych si to představoval jednodušší ;) Novoj -- -------------- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura -- Tomas Hubalek napsal(a): Zdar, mam takovy dotaz. Chtel bych udelat JPA mapping (Hibernate, ale to snad neni podstatne) nasledujicich trid a nevim, jak to oannotovat. public enum Group { A, B, C} @Entity public class Person { ... @? Set groups; ... } Pokud chci jenom jednu property, tak jde pouzit @Enumerated(), ale pro Set to nefunguje. Mate nekdo nejaky tip? Nebo mam obetovat enum a udelat si UserType. Tom !DSPAM:144,45c1ef1d52101336712104!
Re: CARDS: Postupy vytvareni subjektu a skupiny
Ehm, pokuste se prosím z CC odebrat java konferenci, která se tam omylem dostala při prvotním odeslání emailu. Takto vaši komunikaci čte několik tisíc lidí po republice, kteří jsou na Java konferenci přihlášení. S pozdravem, Honza Novotný Jiri Mares napsal(a): Uz jsem tam dodal i odpovednosti, nekde jsem nevedel, tak jsem dal otazniky a je otazka, kdo se dobrovolne prihlasi ... Jiri Lavicka napsal(a): Tak jsem to precet, nekterym bodum skutecne nerozumim a nevim, kdo má právo uvedené úlohy provádět a kdo to muze naridit. J Dobry den vsem, pokusil jsem se nastinit kroky, ktere je nutne k vytvoreni skupiny a subjektu v clearingovem systemu CARDS EXCHANGE. Je mi jasne, ze ne kazdy z vas bude rozumet kazdemu bodu, ale spis jde o to, abych na nic nezapomnel, prosim vas proto, abyste se podivali na nasledujici odkazy http://ids.csad.cz/twiki/bin/view/IDS/VytvoreniSkupinyCARDS http://ids.csad.cz/twiki/bin/view/IDS/VytvoreniSubjektuCARDS a pripadne mi sdelili vase pripominky. Dekuji -- Jiří Mareš (mailto:[EMAIL PROTECTED]) ČSAD SVT Praha, s.r.o. (http://www.svt.cz) Czech Republic
Re: databáze
Zdravím, já jsem několikrát používal Apache Derby <http://db.apache.org/derby/> - tedy nyní Java DB <http://developers.sun.com/prodtech/javadb/>. Nevím kolik zabírá v paměti ale na disku je to pár mega (pro mé malé projekty od dvou do čtyřech megabytů). Používal jsem jí v kombinaci s Hibernate a nikdy jsem neměl problém. Honza Novotný -- -------------- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura -- Pavel Nemec napsal(a): Dobrý den, pro jeden svůj projekt bych potřeboval použít nějakou velice malou databáze. Databáze bude součástí programu a není podstatné aby byla rychlá, ale spíše aby byla malá (jak do velikosti v paměti, tak potřebná velikost na disku). Našel jsem několik kandidátů (všechny pod GPL licencí) a všechny v jave. HSQL DB4o Pokud mátě někdo zkušenosti s databázemi, prosím podělte se. (mám na mysli zkušenosti s malými embeded databázemi ;) ) Pavel !DSPAM:144,45c99615137891804284693!
Re: databáze
Naštěstí žijeme v době ORM jako je třeba Hibernate, takže pokud se šikovně navrhuje a programuje, není změna DB enginu žádná drastická operace. Tím nechci shazovat vaši radu - jen protiargumentovat ;). Novoj -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura -- Ales Pavel napsal(a): >Honza >Taky bych se klonil k JavaDB, ovsem v Jave 6.0 je jen jako Early >Access, tedy ne pro produkcni nasazeni. At uz to znamena cokoli. :-) >Jinak pred nejakou dobou byl na root.cz serial o embedded databazich. Lepsi je pouzit Firebird 2, pak se to cele da v pohode prehodit na centralni firebird server.. Znam ty stavy kdy se rika bude stacita pak najednou nestaci ;) a velikost je tu take zanedbatelna... tedy velikost samotne db. Ales !DSPAM:144,45c99d67166088586914631!
Re: luntbuild x continuum
Zdravím, asi před rokem a půl jsem používal Luntbuild - v současném zaměstnání Continuum. Zdá se mi, že Luntbuild nabízí větší možnosti customizace a kontroly nad CI a víc fíčur. V době, kdy jsme jej používali ještě neexistoval Maven 2, takže ani nevím, jestli ji Luntbuild už teď podporuje (Continnum ano). Druhou stranou mince je to, že je to někdy dost potíž Luntbuild donutit, aby dělal to co vy chcete. S množstvím fíčur taky přichází trochu obtížnější konfigurace. Continuum bych oproti tomu nazval lightweight CI. Je naprosto maximálně jednoduchý - podporuje Maven 2,1, Ant a Shell scripty. Zavádění projektů je velmi jednoduché - nemusíte psát žádné informace navíc (co může vezme si z POM). I zvenčí je krásně vidět, co Continuum vevnitř dělá a pokud se něco rozbije, jste schopní to sami jednoduše opravit. Takže jednou větou - Continuum vám nabízí takový ten základ, jednoduše a lehce použitelný, který se naučí ovládat a nastavovat každý průměrný uživatel během 10 minut. Obecně vzato jde o to, co od svého CI vlastně chcete ... Honza Novotný -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura -- Petr Burdik napsal(a): Ahojte, mohli byste mi prosim dat nekdo z vlastni zkusenosti radu ktery z tech dvou pouzit pro CI? Pekny vecer Pet --Using Opera's revolutionary e-mail client: http://www.opera.com/mail/ !DSPAM:144,45e34609123961802671257!
Re: Jednotkové testování JSF web UI
Zdravím, my jsme JSF (implementace MyFaces) testovali Seleniem a s úspěchem. Problém byl akorát v tom, že si MyFaces vždycky generovaly dynamické ID u jednotlivých komponent. Takže bylo nutné použít rozšíření Tomahawk, které umožňuje ke komponentám definovat forceId, které vynucuje absolutní IDčka (Selenium testy se chytaly právě na tyto idčka při assertech). Honza Novotný
Re: Docasny Update v MS SQL ?!
Není update prováděný v transakci? Ve stejné transakci se potom selectem získají ta modifikovaná data (nebo i v jiných - záleží na nastavení izolace transakcí). No ale ta transakce není na konci commitnuta. Pak by mohlo dojít k automatickému rollbacku (např. při vrácení connection zpátky do poolu). Ale to fakt dost záleží na tom, jak je to tam udělané - a pravděpodobně by se jednalo o systematickou a ne náhodnou chybu. Honza N. 2007/4/18, V SOFT <[EMAIL PROTECTED]>: Zdravím všetkých Vytvoril som pre klienta web aplikáciu , databáza MS SQL , JDBC je JTDS . Zákazník reklamuje pre mna dost nepochopitelnu chybu a to že keď spraví UPDATE niektorých položiek v databáze a následne si ich dá znovu načítať je všetko OK t.j. sú zmenené, ale odstupom času, zvyčajne na druhý deň je všetko ako pred UPDATOM a to všetko sa že vraj nestane vždy, ale iba občas mne sa takúto chybu samozrejme nepodarilo navodit budem vďačný za akékoľvek vaše názory dík Mráz
Re: Reuse tag souboru
Zdravím, tak zdrojáky už mám po ruce ;). JSP: <%@ page language="java" contentType="text/html; charset=windows-1250" %> <%@ taglib tagdir="/WEB-INF/tags/trtn" prefix="trtn" %> Tag1: <%@ tag language="java" pageEncoding="windows-1250" %> <%@ tag body-content="scriptless" %> <%@ taglib uri="http://struts.apache.org/tags-logic"; prefix="logic" %> <%@ taglib tagdir="/WEB-INF/tags/trtn" prefix="trtn" %> <%@ attribute name="resultPage" required="true" rtexprvalue="true" type=" com.fg.commons.dao.PaginatedList" %> Tag2: <%@ tag language="java" pageEncoding="windows-1250" %> <%@ tag body-content="empty" %> <%@ taglib uri="http://struts.apache.org/tags-bean"; prefix="bean" %> <%@ taglib uri="http://struts.apache.org/tags-html"; prefix="html" %> <%@ attribute name="isOrdered" required="true" type="java.lang.String" %> <%@ attribute name="orderingType" required="true" type="java.lang.String" %> <%@ attribute name="columnName" required="true" type="java.lang.String" %> <%@ attribute name="target" required="true" type="java.lang.String" %> <%@ attribute name="title" required="true" type="java.lang.String" %> BLA BLA Takhle mi to funguje. Novoj 22.5.07, Rodina Novotných <[EMAIL PROTECTED]>: Zdravím, určitě by to mělo jít - lépe řečeno na projektu, na kterém dělám to tak používám. Zítra bych mohl doprovodit své tvrzení i příkladem (teď nemám po ruce zdrojáky). Každopádně Tag soubory nemám ve WEB-INF/tags, ale v WEB-INF/tag/neco a v tag souborech si potom definuju použití dané "rodiny" tagů přes atribut tagDir. Vše funguje ok a i IntelliJ Idea napovídá, tak jak má. Novoj Jan Moravec napsal(a): > Zdravim, > > Narazil jsem na drobny problem s JSP tag soubory. Jde o pripad, kdy chci uvnitr jednoho tag souboru pouzit jiny tag (definovany v jinem tag souboru). > > Priklad: > > Soubor label.tag obsahuje: > > --- > <%@ tag body-content="empty" pageEncoding="UTF-8" language="java" %> > > ... > > > --- > > > e:i18n je tag definovany v Java tride (tj. takovy ten prvni existujici zpusob tvorby tagu). S timto problem neni, tag ma namespace a je zadeklarovany v tld a tudiz je v label.tag viditelny. > > et:tooltip je tag definovany v tag souboru tooltip.tag a jako takovy neni nikde zadeklarovany (je pouze ulozen na standardnim miste tj. v WEB-INF/tags). Problem s timto je, ze po pouziti e:label se mi ve vygenerovanem HTML et:tooltip neexpanduje (tj. proste se tam jen zkopiruje ). IntelliJ u tag souboru label.tag hlasi, ze tag et:tooltip nezna, cili nejsem az tak moc prekvapen. Pokud et:tooltip zavolam z JSP a nikoli z tag souboru, neni problem. > > Otazka tedy je, jak v jednom tag souboru pouzit tag z jineho _tag_souboru_. Jde to vubec? > > Diky, > Honza > > > -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura -- -- -- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: Plneni sestav
No pokud nechcete zanášet do projektu další knihovny zkuste java.util.Timer. Jinak Quartz je dobrej a hojně používanej taky. http://www.javapractices.com/Topic54.cjp Novoj 23.5.07, Ales Dostal <[EMAIL PROTECTED]>: Zdravim, mam nekolik otazek :) Potrebuji vytvorit aplikaci, ktera bude slouzit k plneni sestav z jinych zdroju (Oracle, textove soubory, atd.) do MySQL. Aplikace by mela byt desktopova (Swing). Server SJSAS 9 s pouzitim EJB3 a vzdaleneho volani na klienta. (toto jiz vyreseno mam). Nyni bych potreboval nasledujici: V desktopove aplikaci mit nejaky planovac uloh, kde naplanuji, kdy se budou dane ulohy pro plneni sestav spoustet (neco jako Crone). Dale potrebuji v desktop aplikaci miti nejaky prehled o tom, ktera sestava se zrovna plni. Nejaky swing listener na sluzbu na serveru, ktera mi bude hlidat, co se zrovna plni. Momentalne nevim, jakym zpusobem postupovat. Vim, ze existuje nejaky Timer pro EJB, ale nevim, jestli je to presne to, co hledam. Na internetu jsem nenasel prilis materialu. Dale nevim jak udelat dany posluchac do Swingu. Existuje EJB Driven Message, ale zase nevim, jestli to slouzi k tomuto ucelu. Pri davkovem plneni nevim, zda muzu pouzit JPA a TopLink. Duvod je ten, ze se bude plnit treba milion radku a nektera data jsou chybova, ktera se ulozi do error tabulky. Pri davkovem zpracovani mi asi budou vadit automaticky rizene transakce. Nechci kvuli jednomu radku rollbacknout celou davku. Mam zakladni znalosti o EJB, ale tohle uz presahuje muj ramec znalosti a navic na internetu jsem k tomuto ucelu moc informaci nenasel :( Diky vsem za nakopnuti. -- ------ Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: Timeout a JMS
No skoro bych si tipnul, že vám to celé jede v jedné transakci. JMS nemůže zpracovat zprávu dříve, než je transakční kontext, ve kterém je zpráva vytvořena commitnutý. Kdyby to tak šlo, tak při rollback situaci by tahle operace nešla vrátit zpět. Důležité je tedy dostat vytváření JMS zpráv do jiných transakčních kontextů - tedy použití "requiresNew" v případě, že vám transakce řídí kontejner (teda myslím si, že by tohle mělo pomoct - nejsem žádný J2EE expert). Zkuste to, třebas to bude v tom. Novoj 29.5.07, Ales Dostal <[EMAIL PROTECTED]>: Zdravim, tak jsem tak nejak probadal, jak udelat plneni. Naplanovat ulohu, spustit a identifikovat o stavu. Jenze, kdyz na zacatku plneni poslu do Topic zpravu o tom, ze se sestava plni a na konci metody poslu zpravu o tom, ze je sestava naplnena, na klienta se mi poslou obe zpravy az po dokonceni cele metody. Pr: Server: public void napln(Timer timer) { // send message to Topic // nejake plneni // send message to Topic } Klient: Zacatek plneni 12:30:21 Konec plneni 12:30:21 Proste ceka, az dokonci celou metodu a pak vse odesle, ale ja bych potreboval, aby se mi message do Topic poslali po sobe a pak cekali na naplneni. Jediny napad, na ktery jsem prisel byl, ze jsem to odeslani zprav hodil do vlastniho threadu, ale nekde jsem cetl, ze vytvaret na serveru thready by se nemelo. Pr: public void napln(Timer timer) { // thread zacatek.start(); // nejake naplneni // thread konec.start(); } Klient: Zacatek plneni 12:30:21 Konec plneni 12:30:29 Zkousel jsem to pomoci nove EJB s anotaci PreConstruct a PreDestroy, ale to nefunguje, protoze po vytvoreni se zavola PreConstruct a PreDestroy uz nikoli, pri dalsim plneni, se nezavola jiz nic :( Nevim, jestli pomoci threadu je to zrovna nejidealnejsi reseni. :( -- -------------- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --
Re: Timeout a JMS
No vážně nejsem přeborník v J2EE - co se týká chování JMS při použití transakcí, doporučuji k přečtení následující stránky - váží se sice ke starší verzi J2EE, ale základní koncepty budou stále stejné: http://www.javaworld.com/javaworld/jw-02-2002/jw-0315-jms.html?page=2 http://java.sun.com/products/jms/tutorial/1_3_1-fcs/doc/advanced.html#1026538(kapitola Using JMS API Local Transactions) Snad zareauje některý z větších J2EE guru ... dle všeho by jich mělo být na tomhle mailing listu víc než dost. Novoj 2007/5/29, Ales Dostal <[EMAIL PROTECTED]>: Tak bohuzel bez uspechu. Zkousel jsem to pres vytvoreni nove transakce, ale stejne ne :( Pr: @Resource(mappedName = "jms/TopicConnectionFactoryPlneni") private TopicConnectionFactory connectionFactory; @Resource(mappedName = "jms/TopicPlneni") private Topic topic; private Connection con = null; private Destination dest = null; private Session session = null; private MessageProducer producer = null; private ObjectMessage oMessage = null; @PostConstruct public void connect() { try { dest = (Destination) topic; con = connectionFactory.createConnection(); session = con.createSession(false, Session.AUTO_ACKNOWLEDGE); producer = session.createProducer(dest); oMessage = session.createObjectMessage(); } catch (Exception e) {} } @PreDestroy public void close() { try { con.close(); } catch (Exception e) {} } public void start() { Plneni p = getPlneni(); p.setProbiha(true); try { oMessage.setObject(p); producer.send(oMessage); } catch (JMSException ex) { ex.printStackTrace(); } } @Timeout public void spust(Timer timer) { start(); // plneni plneni(); end(); } Zkousel jsem, vsechno mozne anotovat metodu start a end jako @TransactionAttribute(value=TransactionAttributeType.REQUIRES_NEW). Ci udelat pro start i end vlastni connection. Uz jsem vazne bezradnej :( -- -------------- Ing. Jan Novotný @@ http://blog.novoj.net Myšlenky dne otce Fura --