Re: JSF a URL
Jenom bych chtel upozornit, pokud pouzijete ve faces-config.xml direktivu redirect, je potreba dat pozor na predavani request parametru (a stav managed beanu, pokud maji scope request). Stalo me to nekolik horkych chvilek nez jsem si to ujasnil. Mirek Milan Kratochvíl napsal(a): Toto chovani se nastavuje ve faces-config.xml. Do prislusneho navigation-case staci pridat direktivu redirect/ a adresa by mela vypadat tak, jak predpokladate. Milan Kratochvil URBAN Leos wrote: Dobrý den, při pokusech s JSF jsem narazil na to, že zobrazená stránka neodpovídá tomu co je v URL prohlížeče. Například. Z index.jsp zavolám klasicky firstJsf.jsp, ten je zobrazen v URL dobre. V něm kliknu na buttom (commandButton), zpracuje se příslušná metoda backbeany a zobrazí secondJsf.jsp. V prohlížeči ale je pořád URL pro firstJSF. Teď zase kliknu na commandButton Zpátky, vrátím se na firstJsf.jsp jenže v prohlížeči mám o krok zpátky secondJsf.jsp. Jistě to má nějakou logiku ale já bych přesto byl rád kdyby nahoře bylo to co je zobrazeno a nepletlo to uživatele :-) Jde to nějak? Velmi děkuji, Leoš
JSF a converter a currency
Vazeni kolegove, narazil jsem na nasledujici asi trivialni problem, se kterym si nevim rady: Mam JSF managed bean finance, ktery ma v sobe amount (BigDecimal) a amountUnit (string, obsahuje symbol meny, zadany uzivatelem, napr. Kc, $, apod., nejsou to ISO kody). Potrebuji tuto hodnotu zobrazit. Primocare jsem napsal: h:outputText value=#{finance.amount} f:convertNumber type=currency currencySymbol=#{finance.amountUnit} / /h:outputText A vysledek mi penezni jednotku nezobrazi (je tam jenom velikost, tj. hodnota amount). Kdyz ale udelam h:outputText value=#{finance.amount} f:convertNumber type=currency currencySymbol=Kc / /h:outputText Tak vysledek (ale chybne) vsude zobrazi Kc, kdyz zobrazim neco jako h:outputText value=#{finance.amount} f:convertNumber pattern=###,##0.00 / /h:outputText h:outputText value= #{finance.amountUnit} / tak vysledek dostanu (ale je to ohavny kod, navic v nekterych locale asi chybne formatovany). V cem je problem? Podle javadoc by convertNumber v atributu currencySymbol melo vzit ValueExpression. Dekuji za kazdou radu. Mirek
Re: JSF scope request, session
Jednoznacne pripad od pripadu, ve vasem pripade s uzivateli v ruznych oknech to chce scope request (jiz bylo zmineno, nektere prohlizece v novem okne otevrou novou session). A ta hromada hidden parametru, to jako proc? JSF umoznuje ziskavat primo objekty, a hidden parametry prakticky nepotrebujete. Anebo nerozumim specificke situaci, to je taky mozne. Mirek Ondřej Fafejta KYBERIE napsal(a): Zdravím konferenci! Řeším problém, zda ukládat JSF Beany jako request nebo session. Je požadováno, aby mohlo být otevřených více stejných formulářů najednou. Např. V jednom okně vytvářím nového uživatele a v druhém mám náhled na jiného uživatele. Pokud bych měl bean uložen v session, tak se navzájem přepisují data a to je nežádoucí ;-). Pokud bych měl používat request, tak musím předávat hromadu hidden parametrů ručně a hrozí, že na něco zapomenu. Je možné v JSF používat vícenásobnou session? Na googlu jsem našel docela zajímavý odkaz k tomuto tématu: http://www.theserverside.com/discussions/thread.tss?thread_id=27557 Díky Fafi
Re: JSF scope request, session
Aha, ted uz tomu rozumim. To chce uz slozitejsi reseni. Byl tady zminovan Seam, snad pomuze. Mirek Ondřej Fafejta KYBERIE napsal(a): Děkuji za odpovědi! Trochu ten příklad ještě zesložitím, abych zdůvodnil, proč nechci používat request beany. Mějme otevřená dvě okna na vytvoření nového uživatele. Pro vytvoření nového uživatele se používá WIZARD, který obsahuje např. 3 kroky. 1. Zadání údajů k uživateli (jméno, příjmení ...) 2. Zadání hlavní adresy 3. Zobrazení souhrnu před uložením Pokud bych používal request beany, tak ve WIZARDu v kroku 2 musím přenést všechna pole z kroku 1. V kroku 3 musím přenést všechna pole z kroku 2 i 1. Proto jsem psal o zadávání hromady hidden parametrů. Fafi Mirek Stohr wrote: Jednoznacne pripad od pripadu, ve vasem pripade s uzivateli v ruznych oknech to chce scope request (jiz bylo zmineno, nektere prohlizece v novem okne otevrou novou session). A ta hromada hidden parametru, to jako proc? JSF umoznuje ziskavat primo objekty, a hidden parametry prakticky nepotrebujete. Anebo nerozumim specificke situaci, to je taky mozne. Mirek
Re: JSF scope request, session
Dobry napad. Neslo by pouzit primo session id? Mirek jeeff napsal(a): Ahoj, session je v tomto pripade uplne OK, jedine co potrebujes zabezpecit, aby ten objekt bol v session vzdy pod inym menom (v kazdom okne). Meno pod ktorym je objekt v session si mozes prenasat ako hidden parameter. Toto by neslo pouzit? Je to pomerne jednoduche, pri vytvoreni si vygenerujes novy identifikator objektu v session a potom ho len prenasas ako hidden parameter. Ondřej Fafejta KYBERIE wrote: Děkuji za odpovědi! Trochu ten příklad ještě zesložitím, abych zdůvodnil, proč nechci používat request beany. Mějme otevřená dvě okna na vytvoření nového uživatele. Pro vytvoření nového uživatele se používá WIZARD, který obsahuje např. 3 kroky. 1. Zadání údajů k uživateli (jméno, příjmení ...) 2. Zadání hlavní adresy 3. Zobrazení souhrnu před uložením Pokud bych používal request beany, tak ve WIZARDu v kroku 2 musím přenést všechna pole z kroku 1. V kroku 3 musím přenést všechna pole z kroku 2 i 1. Proto jsem psal o zadávání hromady hidden parametrů. Fafi Mirek Stohr wrote: Jednoznacne pripad od pripadu, ve vasem pripade s uzivateli v ruznych oknech to chce scope request (jiz bylo zmineno, nektere prohlizece v novem okne otevrou novou session). A ta hromada hidden parametru, to jako proc? JSF umoznuje ziskavat primo objekty, a hidden parametry prakticky nepotrebujete. Anebo nerozumim specificke situaci, to je taky mozne. Mirek -- jeeff
Re: Synchronizace persistentnich objektu
Neslo, nepouzivam Hibernate :-)) Mirek Jakub Příkazský napsal(a): A není možné tohle už nějak řešit na úrovni Hibernate? Dost bych se divil, že by H neměl podporu pro řešení tohoto problému. Jakub Mirek Stohr wrote: Presne vasi situaci (malo velkych stromu) mam taky. Resim to, jak jsem jiz napsal, verzovanim, a verzi vlastni kazdy objekt ve stromu (resp., kazdy objekt u ktereho to dava smysl, tj. objekt, ktery mohu nejakym zpusobem editovat). V pripade zapisu do db se zvetsi verze nikoliv pouze objektu, ktery byl editovan, ale i objektu na stejne vetvi az po koren, cimz zajistim konzistenci stromu. Ma to nevyhodu ze muze byt odmitnut zapis naprosto nesouvisejicich zmen, ale pomer cteni/zapis v moji aplikaci je natolik velky, ze jsem zvolil tuto strategii (tj. zvolil jsem mirny pesimismus v optimisticke strategii :-)) Mirek Lukas Barton napsal(a): Honza wrote: Dekuji za odpoved. Optimisticke zamikani vypada docela slibne. Nicmene vezmneme nasledujici priklad. Objekty v mem systemu se radi do samostatnych stromu. Techto stromu bude docela malo v pomeru s tim jak jsou velike. Zamykat jenom podstromy by bylo dost slozite, takze budu muset zamykat koren. Pouziji-li optimisticky lock znamena to ze si dva uzivatele budou moci soucasne otevrit ten samy strom a pracovat v nem (pridavat/prohlizet/menit/mazat listy), ale zmeny se podari ulozit jenom tomu kdo jako prvni klikne save a commitne svoji transakci. Druhemu uzivateli by pak bylo sdeleno ze jeho zmeny nelze ulozit. Z tohoto duvodu me prijde schudny jedine pesimisticky pristup. Nicmene stale premyslim jak to implementovat a jedine co me napada pridat do DB sloupecek ktery bude zamek identifikovat a tim se ridit. Dalsi problem vidim v trvanlivosti takovychto zamku a taky jak zajistim ze v jine session nedojde k nejake chybe a zamek se neuvolni. Je periodicke obnovovani zamku spravne reseni? Je to jedno z moznych reseni, ale jakekoliv pesimisticke zamky prinasi problemy - viz ten timeout zamku. Zajimave je to popsano v clanku http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/concurev4M.asp Tam se doctete, co dal by mohlo pomoci: - uzivatel vlastni svoje data (toto pouzivame ve 2,5 vrstve aplikaci taky, spolu s verzovanim) - pouzivate navrhovy vzor business actions neboli postings (v podstate chytrejsi verzovani dat) - omezte dobu po jakou muze uzivatel editovat sva data, bez ziskani nove verze - zvetste granularitu moznosti editace (napr. povolte pouze jednu zmenu struktury ve stromu a po ni synchronizujte verze se serverem) Do teto polozky by se moje aplikace dala zaradit. Verzovanim si v podstate vyrabite situaci kdy: - zapis neblokuje cteni - cteni neblokuje zapis Tj. MVCC, ktere v posledni dobe na urovni databaze zavedli/zavedou dalsi 3 produkty (MS SQL od verze 2005, DB2 na PC (verzi zpameti nevim a Informix (pristi verze). Tuto funkcionalitu uz delsi dobu ma Oracle (od verze 6 nebo 7), od uplneho zacatku Interbase (Firebird), PostreSQL a MySQL InnoDB. Lukas
Re: Synchronizace persistentnich objektu
Presne vasi situaci (malo velkych stromu) mam taky. Resim to, jak jsem jiz napsal, verzovanim, a verzi vlastni kazdy objekt ve stromu (resp., kazdy objekt u ktereho to dava smysl, tj. objekt, ktery mohu nejakym zpusobem editovat). V pripade zapisu do db se zvetsi verze nikoliv pouze objektu, ktery byl editovan, ale i objektu na stejne vetvi az po koren, cimz zajistim konzistenci stromu. Ma to nevyhodu ze muze byt odmitnut zapis naprosto nesouvisejicich zmen, ale pomer cteni/zapis v moji aplikaci je natolik velky, ze jsem zvolil tuto strategii (tj. zvolil jsem mirny pesimismus v optimisticke strategii :-)) Mirek Lukas Barton napsal(a): Honza wrote: Dekuji za odpoved. Optimisticke zamikani vypada docela slibne. Nicmene vezmneme nasledujici priklad. Objekty v mem systemu se radi do samostatnych stromu. Techto stromu bude docela malo v pomeru s tim jak jsou velike. Zamykat jenom podstromy by bylo dost slozite, takze budu muset zamykat koren. Pouziji-li optimisticky lock znamena to ze si dva uzivatele budou moci soucasne otevrit ten samy strom a pracovat v nem (pridavat/prohlizet/menit/mazat listy), ale zmeny se podari ulozit jenom tomu kdo jako prvni klikne save a commitne svoji transakci. Druhemu uzivateli by pak bylo sdeleno ze jeho zmeny nelze ulozit. Z tohoto duvodu me prijde schudny jedine pesimisticky pristup. Nicmene stale premyslim jak to implementovat a jedine co me napada pridat do DB sloupecek ktery bude zamek identifikovat a tim se ridit. Dalsi problem vidim v trvanlivosti takovychto zamku a taky jak zajistim ze v jine session nedojde k nejake chybe a zamek se neuvolni. Je periodicke obnovovani zamku spravne reseni? Je to jedno z moznych reseni, ale jakekoliv pesimisticke zamky prinasi problemy - viz ten timeout zamku. Zajimave je to popsano v clanku http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/concurev4M.asp Tam se doctete, co dal by mohlo pomoci: - uzivatel vlastni svoje data (toto pouzivame ve 2,5 vrstve aplikaci taky, spolu s verzovanim) - pouzivate navrhovy vzor business actions neboli postings (v podstate chytrejsi verzovani dat) - omezte dobu po jakou muze uzivatel editovat sva data, bez ziskani nove verze - zvetste granularitu moznosti editace (napr. povolte pouze jednu zmenu struktury ve stromu a po ni synchronizujte verze se serverem) Do teto polozky by se moje aplikace dala zaradit. Verzovanim si v podstate vyrabite situaci kdy: - zapis neblokuje cteni - cteni neblokuje zapis Tj. MVCC, ktere v posledni dobe na urovni databaze zavedli/zavedou dalsi 3 produkty (MS SQL od verze 2005, DB2 na PC (verzi zpameti nevim a Informix (pristi verze). Tuto funkcionalitu uz delsi dobu ma Oracle (od verze 6 nebo 7), od uplneho zacatku Interbase (Firebird), PostreSQL a MySQL InnoDB. Lukas
Re: Synchronizace persistentnich objektu
Prakticky stejny problem resim verzovanim objektu. Napsal jsem si k tomu drobnou knihovnicku, a vse bezi bez problemu. Podotykam ale ze je to zpusob ktery zvysi zatez db a app. serveru, ale nastesti moje aplikace zatim s vykonem problemy nemely (a pokud mely, duvod nebyl ve vyse zminenem). Mirek Honza napsal(a): Zdravim, muj dotaz se primo netyka Javy, ale spise navrhu aplikaci. Doufam ze neni prilis off-topic. Jak se ve viceuzivatelskem prostredi resi sychronizace a zamykani persistetnich dat? At uz pisu dvou nebo tri vrstvou aplikaci, vzdycky se nakonec potkam s problemem, kdy si jeden uzivatel vyzada nejaky objekt (ktery v DB reprezentovan nekolika zaznamy v ruznych tabulkach) a tento objekt upravuje nebo prohlizi. V pripade, ze s timto objektem bude chtit pracovat i jiny uzivatel, tak mu musim zmeny na takovemto objektu zakazat (zamek uz vlastni jiny uzivatel). Jedna se o klasickou situaci read/write zamku branici vzniku inkonzistentnich dat. Read zamek muze mit kdokoli. Write zamek muze mit jen jeden. Napadlo me nekolik zpusobu reseni, ale zadny jsem si zatim nedokazal obhajit jako zivota schopny (na mapovani objektu DB-Java pouzivam vlastni knihovnu). Resi nektere opensource frameworky tuto problematiku? Resite ji vy ve svych aplikacich? Jak? Predem velice dekuji za jakekoly ohlasy. Honza
Re: RMI server - nabizene objekty
Nepomohlo by java.rmi.registry.Registry.list() ? Mirek Benda Lukas napsal(a): Jak poznam ktere objekty mi RMI registr nabyzi na danem portu? Jde mi o to, ze jsem vytvoril client a server. Server jsem spustil a client se k nemu neumi prihlasit. Ted nevim jestli je chyba na strane client, nebo na strane server. Jak poznam ze objekt serveru je v registru a je skutecne nabizen clientum? Da se nekde zjistit seznam nabizenych objektu danym registrem? Lukas benzin Benda ([EMAIL PROTECTED]; http://benzin.bloguje.cz) Java a Delphi programator PHP a JavaScript skrypter Tvurce databazovych aplikaci A cestinarsky ignorant
Re: Oddelovac desetin
Osobne si myslim, ze nelze vzdy zpracovat jakykoliv vstup od uzivatele, tj. ze uzivatel nese odpovednost za spravnost sveho zadani. Proto pokud aplikace pouziva ceske locale (a uzivatel je na to upozornen), pak uzivatel musi zadavat desetinnou carku (jak je v ceskych locale definovano). Samozrejme je mozne uzivateli vyjit vstric a umoznit mu v uzivatelskem nastaveni zvolit jinou moznost. Tj., shrnuto, obecne reseni na tento problem bych vubec nehledal, a postupoval dle vyse uvedeneho. Mirek jeeff napsal(a): Ahojte, myslim, ze sa to da spravit nejak takto: 1. vyhadzat medzery ako pise aubi 2. zistit ci je tam len jedna ciarka a ziadna bodka - vtedy je to asi oddelenie desatinneho miesta - skonvertujem na bodku 3. ak su tam aj ciarky aj bodky, tak to co je posledne je oddelenie desatinneho miesta, cize to zmenim na . a ostatne odstranim s takymto postupom by to mohlo fungovat bez ohladu na regionalne nastavenia. Ci to aj bude dobre riesenie, neviem posudit, kedze neviem ci sa vzdy zadavaju aj desatinne miesta. Toto urcite zliha na zapise 100,000 Sk (akoze 10), pretoze si bude mysliet ze je to 100.000 (100 Sk). aubi wrote: Resime problem se zadavanim cisel ve webove aplikaci. Vime zemi uzivatele a Jak to resite vy? Pokud v tom neni nic jineho nez zadavani, pak ja to resim tak, ze vyhazu mezery a carku zmenim na tecku. Pokud ale pouzije anglicke oddelovace tisicu (carka), tak je to neresitelne. Pokud jde o vypis, ktery ma byt korektni, tak defaultne podle toho, co nahlasi browser o preferenci jazyku, pripadne podle uzivatelskeho nastaveni. aubi -- jeeff
Re: JSF vice na sobe zavislych listboxu
Ted jenom hadam mozne priciny chyby: 1/ v prvnim selectOneMenu mate jako onchange JavaScript submit();, tj. vyvola se HTTP request, ale chybi nektery parametr, ktery si JSF interne predava (selectOneMenu je komponenta UISelectOne, a ta neimplementuje ActionSource, commandButton je UICommand, ktery ActionSource implementuje, takze tady je to zarizeno interne), diky tomu nemuze korektne probehnout cely zivotni cyklus. 2/ Nebylo v zjednoduseni opominuto ze SelectItem obsahuje i jine hodnoty nez stringy? Nemohou se tam dostat odnekud napriklad datumy, atd.? (vlastni neblaha zkusenost :-)) 3/ Vas priklad je dozajista zjednoduseny, ale u druheho selectOneMenu vam chybi atribut value, tj. jak zjistujete vybranou hodnotu? 4/ Zkuste vypisovat chybova hlaseni pro kazdy prvek pomoci h:message for=select2 /, nekdy to pomuze lokalizovat zdroj chyby lepe. Neslo by to cele vyresit elegantneji pomoci jednoho selectOneMenu, ktere by obsahovalo SelectItemGroup (ovoce, zelenina, napoje), a kazda tato SelectItemGroup by pak mela jednotlive polozky (pivo, limo, kava)? Mirek Holoubek, Vaclav (EOT) napsal(a): Dobry den, Snažím se pomoci JSF naplnit vice listboxu, které se budou vzajemne ovlivnovat. Delam to na Websphere 6.0. Nechova se mi to ale korektne a při zmene prvniho listboxu to hlasi tuto chybu (ale ne vzdy) : 0050 jsf E com.sun.faces.context.FacesContextImpl addMessage Adding Message[sourceId=_id0:select2,summary=Validation Error: Value is not valid) Nevite co delam spatne zde je ukazka JSF stranka: f:view BODYh:form h:selectOneMenu id=select1 onchange=submit() value=#{managedBean.druh} f:selectItems value=#{managedBean.seznamDruhu}/ /h:selectOneMenu BR - BR h:selectOneMenu id=select2 f:selectItems value=#{managedBean.seznamZbozi}/ /h:selectOneMenu BR BR h:commandButton type=submit value=Submit action=#{managedBean.vystup} /h:commandButton /h:form /BODY /f:view ManagedBean: public class ManagedBean { private String aktDruh = ; private SelectItem[] druhy = { new SelectItem(Napoje), new SelectItem(Ovoce), new SelectItem(Zelenina)}; private SelectItem[] napoje = { new SelectItem(Limo), new SelectItem(Pivo), new SelectItem(Kava)}; private SelectItem[] ovoce = { new SelectItem(Jablko), new SelectItem(Hruska), new SelectItem(Svestka)}; private SelectItem[] zelenina = { new SelectItem(Mrkev), new SelectItem(Celer), new SelectItem(Petrzel)}; public SelectItem[] getSeznamDruhu() { return(druhy); } public SelectItem[] getSeznamZbozi() { if(aktDruh.equals(Napoje)) return(napoje); if(aktDruh.equals(Ovoce)) return(ovoce); if(aktDruh.equals(Zelenina)) return(zelenina); else return(zelenina); } public String getDruh() { return(aktDruh); } public void setDruh(String zbozi) { this.aktDruh = zbozi; } public String vystup() { return(vystup); } }
Re: Optoklam na vikend
Tak to me kdysi taky stalo nekolik krusnych chvil hledani chyby, nez jsem si precetl javadoc :-)) Mirek Rastislav Rehak napsal(a): Skuste povedat co vam vrati vyraz : Boolean.getBoolean( true ) Ak si myslite, ze true, tak si chodte pozriet dokumentaciu. Bye Ra100
JSF a session attribute listener
Vazeni kolegove, potreboval bych pouzit v JSF aplikaci HttpSessionAttributeListener. Nemam problem s jeho vytvorenim a konfiguraci, ale nevim jestli JSF specifikace neco takoveho nevylucuje, jestli je tento objekt mozno pouzit a zustat pritom pure JSF 1.2 :-)) (tj. napr. na nejakem konkretnim app. serveru nenarazim, apod.) Dekuji za odpovedi. Mirek
ldap realm over ssh
Vazeni kolegove, mam tady takovy konfiguracni problem s app. serverem (konkretne je to Sun Java System Application Server Platform Edition 9.0, build b48). EE aplikace na nem bezi, a je potreba aby se kontaktovali uzivatele. Databaze uzivatelu je pristupna z ldap, ovsem pristup do ldap je mozny pouze pres ssh, tj. je potreba nakonfigurovat ldapsRealm. V dokumentaci jsem naleznul pouze instrukce k ldapRealmu, ani po dlouhem trapeni Google nejsem o nic moudrejsi. Zkusil jsem tedy primo pouzit ldapRealm, s nastavenim directory: ldaps://myldap.mycompany.cz base-dn: dc=mycompany, dc=cz jaas-context: ldapRealm importoval jsem patricny certifikat pomoci keytool do patricne serverove keystore, a vysledek je ze se nejde nalogovat, konkretne s vyhozenim Login failed: javax.security.auth.login.LoginException: javax.naming.CommunicationException: anonymous bind failed: myldap.mycompany.cz:636 [Root exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target] Vypada to jako by ldapRealm nedovedl najit certifikat v keystore. Proc ale netusim. Nemate nejaky napad co jsem udelal spatne, ci napovedu jak zprovoznit (u vyse uvedeneho serveru) ldap over ssh? Diky za napovedu predem. Mirek
Re: ldap realm over ssl
Oh, ja bloud, samozrejme ssl, nikoliv ssh, tak to dopada kdyz clovek dela vice veci najednou a mluvi na nej :-)) Prominte. Kus kodu poslat nemuzu, protoze chci pouzit v EE aplikaci (kterou tvori ejb vrstva, jsf vrstva starajicici se o klientske rozhrani a par dalsich vecicek) declarative security, tj. abych pouhym nastavenim deployment descriptoru (plus dodanim jsf stranek typu login.jsp, loginerror.jsp, atd.) dosahnul toho, aby se do aplikace uzivatele museli nalogovat, dle sve user-group meli pravo delat jenom neco, atd. Takze musim na app. serveru zprovoznit nastaveni patricneho realmu, ktery pak vyuziju, tj. cely muj dotaz je konfiguracni, nikoliv programatorsky. Snad to moc nepletu, presne vyjadrovani mi nejak moc nejde :-)) Mirek Burdik Petr napsal(a): Ahojte Mirku, ssl ci tls jste myslel, vidte? Neplette si ssh a ssl. Dalsi veci je, muzete poslat kus kodu kde se na to connectujete? Mam kus kodu kde jsem to vyresil. Preju pekny den Pet Mirek Stohr wrote: Vazeni kolegove, mam tady takovy konfiguracni problem s app. serverem (konkretne je to Sun Java System Application Server Platform Edition 9.0, build b48). EE aplikace na nem bezi, a je potreba aby se kontaktovali uzivatele. Databaze uzivatelu je pristupna z ldap, ovsem pristup do ldap je mozny pouze pres ssh, tj. je potreba nakonfigurovat ldapsRealm. V dokumentaci jsem naleznul pouze instrukce k ldapRealmu, ani po dlouhem trapeni Google nejsem o nic moudrejsi. Zkusil jsem tedy primo pouzit ldapRealm, s nastavenim directory: ldaps://myldap.mycompany.cz base-dn: dc=mycompany, dc=cz jaas-context: ldapRealm importoval jsem patricny certifikat pomoci keytool do patricne serverove keystore, a vysledek je ze se nejde nalogovat, konkretne s vyhozenim Login failed: javax.security.auth.login.LoginException: javax.naming.CommunicationException: anonymous bind failed: myldap.mycompany.cz:636 [Root exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target] Vypada to jako by ldapRealm nedovedl najit certifikat v keystore. Proc ale netusim. Nemate nejaky napad co jsem udelal spatne, ci napovedu jak zprovoznit (u vyse uvedeneho serveru) ldap over ssh? Diky za napovedu predem. Mirek
Re: pls help - sql statement
Osobne se domnivam, ze chyba je v radku, kde volas znovu statement.execute(delete ...), aniz jsi ukoncil praci s ResultSetem, ktery jsi dostal predchazejicim executeQuery. Zkus to rozdelit na dva statementy, pripadne nejdrive nacist, a az pak mazat. Je ale mozne ze pisu naproste nesmysly, nezkousel jsem s tim experimentovat a strilim od boku. Mirek [EMAIL PROTECTED] napsal(a): Dobry den, byl bych velice vdecen za radu jelikoz uz nevim co stim. Mam cvs soubor, ze ktereho dostavam jazykove verze a ty ukladam do databaze ( DB2 ) kazdy zaznam v souboru ma svoje id. Ja ty zaznamy vypisuji cyklem a v tom cyklu volam nize uvedeny kod, ktery overi jestli existuje nejaky zaznam s konkretnim id uz v databazi a pokud ano, tak jej smaze a nasledne vlozi jazykove verze. Problem mam prave v casti ktera zjistuje jestli nejaky uz existuje a kdyztak jej maze. Porad at to zkousim jak chci, pokud zaznam existuje dostavam error: java.sql.SQLException: Cursor state not valid. A nevim co stim. Omlouvam se za lama dotaz. Je mi jasny, ze chyba je mezi zidli a klavesnici. Predem diky za radu. Class.forName(com.ibm.as400.access.AS400JDBCDriver); // register driver java.sql.DriverManager.registerDriver (new com.ibm.as400.access.AS400JDBCDriver()); // create connection Connection con = DriverManager.getConnection(jdbc:as400/ip, user, pass); // create statement Statement statement = con.createStatement(); // enable making safety query statement.setEscapeProcessing(true); // check if some item with current id exist in table ResultSet r = statement.executeQuery(SELECT COUNT(text_id) AS c FROM LIB.HTML_TEXT WHERE text_id=' + id + '); // if item is exist remove it while ( r.next() ) { if ( Integer.parseInt(r.getString(c)) 0 ) { statement.execute(DELETE FROM LIB.HTML_TEXT WHERE text_id=' + id + ' ); } } // crete query for german version String sql1 = INSERT INTO LIB.HTML_TEXT (text_id, text_language, html_text, app_s) + VALUES ('+id+', 'GER', '+ger+', 1); // create query for english version String sql2 = INSERT INTO LIB.HTML_TEXT (text_id, text_language, html_text, app_s) + VALUES ('+id+', 'EN', '+en+', 1); // create query for french version String sql3 = INSERT INTO LIB.HTML_TEXT (text_id, text_language, html_text, app_s) + VALUES ('+id+', 'FR', '+fr+', 1); //execute queries and dump messages if ( statement.execute(sql1) == true ) { System.out.println(id + sql1 item has been inserted); } if ( statement.execute(sql2) == true ) { System.out.println(id + sql2 item has been inserted); } if ( statement.execute(sql3) == true ) { System.out.println(id + sql3 item has been inserted); } con.close(); Zdenek Kasparek This message was sent using IMP, the Internet Messaging Program.
Re: Zamedzenie viacnasobnemu vykonaniu metody
Ja to resil pres ulozen objektu nakupniho kosiku do session uzivatele, plus synchronized metoda aby ji nemohl volat dokud nedobehla. Pokud ma dve okna prohlizece, jsou to dve session, takze problem nevznikne -- nakupni kosiky ma taky dva, a stornuje kazdy zvlast. A session listener v metode sessionDestroyed() kosik automaticky vysype, pokud v nem tedy neco je. Pokud padne cely server kvuli OutOfMemoryError, tak to pravd. bude vetsi problem a bude se to muset resit rucne. Funguje to zatim celkem dobre :-)) Mirek Tomas Hubalek napsal(a): Co takhle to resit jako constraint/trigger v databazi? Jde prece o to, aby data sedele, tj. abych mel bud nakup a nebo zaznam o stornu. Pokud mate spravne integritni omezeni v databazi, nemela by se vam takovato vec stat. Tom jeeff napsal(a): Ahojte, vo web rozhrani riesim ako zamedzit viacnasobnemu zavolaniu nejakej metody. Priklad: majme metodu pre stornovanie nakupu pri ktorom sa vracia suma za nakup na ucet nakupujuceho. Je to spravene ako staticka metoda: public class NakupyDB { public static boolean stornoNakup(NakupBean nakup) { //najskor skontrolujme ci uz nahodou nie je stornovany if (nakupBean.isStornovany()) return false; //vratime sumu na ucet //nastavime ze je to stornovane nakupBean.setStornovany(true); //uloz nakup do DB return true; } } Tato metoda je volana z JSP stranky po kliknuti na prislusnu linku. Chcem zamedzit tomu, ze nakupujuci 2x klikne na linku, pripadne si otvori stranku v 2 oknach a naraz klikne 2x. V tom pripade by sa mu suma za nakup mohla vratila viac krat - ak by prvy thread presiel za test if (nakupBean.isStornovany()) return(false); a potom sa web server prepol do druheho threadu a ten by sa tiez dostal za tento test. Ako najjednoduchsie riesenie sa mi zda spravit celu metodu ako synchronized. Nie je z nej volany ziadny iny synchronized blok, takze by teoreticky nemalo dojst k deadlocku. Neviem ci by sa ale zamok spravne odomkol, keby doslo k nejakemu divnemu stavu, napr. Out Of Memmory alebo nieco podobne. Padol tu aj navrh o napisani filtra, ktory by neumoznil viac krat sucasne (pre daneho navstevnika) zavolat rovnake URL. Akym sposobom taketo situacie riesite vy?
Re: jsf a errorpage
Odpovidam si sam (po delsim trapeni Google): viz.: http://forum.java.sun.com/thread.jspa?forumID=427threadID=481177 http://forum.java.sun.com/thread.jspa?threadID=510112messageID=4283555 Pokud jsem to dobre pochopil, tak situace se ma tak, ze pokud jde o chybu uvnitr action metody nejakeho jsf managed beanu, je treba ji resit tam, tj. mit neco jako public String doMyAction(){ try{ // neco provadim } catch(MyException ex){ // zpracovavam ocekavany vyjimecny stav } catch(Exception ex){ return error; } } a ve faces-config.xml mit direktivu navigation-rule navigation-case from-outcomeerror/from-outcome to-view-id/errorpage.faces/to-view-id /navigation-case /navigation-rule Pokud ale dojde k vyhozeni exception uvnitr get/set metody, uvnitr konstruktoru, atd., je situace otevrena a vypada to ze tvurci specifikace JSF na to jaksi pozapomneli, ci patricna cast JSF specifikace je silne nejasna a nikdo tomu nerozumi (diskuze vedou vzdy do ztracena, tj. neni nabidnuto zadne rozumne obecne fungujici reseni). Toz tak. Snad je to nekomu napomocne. Jak to resite vy? Mirek Mirek Stohr napsal(a): Vazeni kolegove, zkusil jsem si na web aplikaci (EJB3, JSF 1.2, glassfish app. server) jak mi beha errorpage, a vysledkem bylo me prekvapeni, ze mi vubec nebeha, resp. dostanu defaultni errorpage generovanou serverem. Pri nastavovani jsem postupoval presne podle http://wiki.apache.org/myfaces/Handling_Server_Errors, tj. web.xml: error-page error-code500/error-code location/errorpage.faces/location /error-page error-page exception-typejava.lang.Throwable/exception-type location/errorpage.faces/location /error-page errorpage.faces: f:view f:verbatimh1Interní chyba/h1/f:verbatim f:verbatim V systému aplikace došlo k interní chybě. Prosím, upozorněte mě. Děkuji. /f:verbatim f:verbatimh4Chybové hlášení/h4/f:verbatim h:outputText value=#{errorBean.errorMessage} / /f:view Kde by mohla byt chyba, resp. jak se pro vyse uvedenou spec. lisi nastaveni errorpage pro zobrazovani internich chyb aplikace? Doposud jsem naivne myslel ze nijak. Diky. Mirek
Re: jsf a errorpage
To je zajimave, protoze tento postup jsem zkousel jako prvni (viz. muj orig. prispevek) a nefungoval, dostaval jsem defaultni stranku s vypisem chyby (jako by errorpage.jsf neexistovala). Jake mate presne verze JSF, kde to provozujete? Mirek Jaroslav Hurdes napsal(a): U nas to resime jednotne, a to tak, ze vsude vyhazujeme vyjimku FacesException (i v akcich) a ve web.xml mame pridano error-page error-code500/error-code location/common/errorView.jsf/location /error-page Toto nam zajisti, ze chyba projde do nasi errorView a chybu zobrazime podle nasi predstavy. V zasade by to melo fungovat s jakoukoli RuntimeException. Jaroslav Hurdes Mirek Stohr wrote: Odpovidam si sam (po delsim trapeni Google): viz.: http://forum.java.sun.com/thread.jspa?forumID=427threadID=481177 http://forum.java.sun.com/thread.jspa?threadID=510112messageID=4283555 Pokud jsem to dobre pochopil, tak situace se ma tak, ze pokud jde o chybu uvnitr action metody nejakeho jsf managed beanu, je treba ji resit tam, tj. mit neco jako public String doMyAction(){ try{ // neco provadim } catch(MyException ex){ // zpracovavam ocekavany vyjimecny stav } catch(Exception ex){ return error; } } a ve faces-config.xml mit direktivu navigation-rule navigation-case from-outcomeerror/from-outcome to-view-id/errorpage.faces/to-view-id /navigation-case /navigation-rule Pokud ale dojde k vyhozeni exception uvnitr get/set metody, uvnitr konstruktoru, atd., je situace otevrena a vypada to ze tvurci specifikace JSF na to jaksi pozapomneli, ci patricna cast JSF specifikace je silne nejasna a nikdo tomu nerozumi (diskuze vedou vzdy do ztracena, tj. neni nabidnuto zadne rozumne obecne fungujici reseni). Toz tak. Snad je to nekomu napomocne. Jak to resite vy? Mirek Mirek Stohr napsal(a): Vazeni kolegove, zkusil jsem si na web aplikaci (EJB3, JSF 1.2, glassfish app. server) jak mi beha errorpage, a vysledkem bylo me prekvapeni, ze mi vubec nebeha, resp. dostanu defaultni errorpage generovanou serverem. Pri nastavovani jsem postupoval presne podle http://wiki.apache.org/myfaces/Handling_Server_Errors, tj. web.xml: error-page error-code500/error-code location/errorpage.faces/location /error-page error-page exception-typejava.lang.Throwable/exception-type location/errorpage.faces/location /error-page errorpage.faces: f:view f:verbatimh1Interní chyba/h1/f:verbatim f:verbatim V systému aplikace došlo k interní chybě. Prosím, upozorněte mě. Děkuji. /f:verbatim f:verbatimh4Chybové hlášení/h4/f:verbatim h:outputText value=#{errorBean.errorMessage} / /f:view Kde by mohla byt chyba, resp. jak se pro vyse uvedenou spec. lisi nastaveni errorpage pro zobrazovani internich chyb aplikace? Doposud jsem naivne myslel ze nijak. Diky. Mirek
jsf a errorpage
Vazeni kolegove, zkusil jsem si na web aplikaci (EJB3, JSF 1.2, glassfish app. server) jak mi beha errorpage, a vysledkem bylo me prekvapeni, ze mi vubec nebeha, resp. dostanu defaultni errorpage generovanou serverem. Pri nastavovani jsem postupoval presne podle http://wiki.apache.org/myfaces/Handling_Server_Errors, tj. web.xml: error-page error-code500/error-code location/errorpage.faces/location /error-page error-page exception-typejava.lang.Throwable/exception-type location/errorpage.faces/location /error-page errorpage.faces: f:view f:verbatimh1Interní chyba/h1/f:verbatim f:verbatim V systému aplikace došlo k interní chybě. Prosím, upozorněte mě. Děkuji. /f:verbatim f:verbatimh4Chybové hlášení/h4/f:verbatim h:outputText value=#{errorBean.errorMessage} / /f:view Kde by mohla byt chyba, resp. jak se pro vyse uvedenou spec. lisi nastaveni errorpage pro zobrazovani internich chyb aplikace? Doposud jsem naivne myslel ze nijak. Diky. Mirek
JSF EL
Vazeni kolegove, mam nasledujici problem: Class, jehoz nektere atributy chci zobrazovat na JSF strankach, ma asi nasledujici tvar: public class MyClass{ // spousta vynechana public String getClassAttribute(){ // vynechano } public MapString,String getClassProperties(){ // vynechano } } No a na JSF strance bych potreboval zobrazit properties tohoto classu (vraci je jako Map), ale nikoliv vsechny, ale jednu konkretni, jejiz klic znam. Tj. neco jako myClass.getClassProperties().get(key_name); Doposud jsem v JSF EL nenasel zpusob, jak to udelat, jedine co me napadlo je napsat wrapper, ktery bude mit metodu public String getKeyNameProperty(){ myClass.getClassProperties().get(key_name); } a pak jej volat napr. h:outputText value=#{myClassWrapper.keyNameProperty} / Coz je ale dost otravne, pokud to musite delat pro vic classu, navic ony klice se mohou dodatecne menit. Doufam, ze jsem se vyjadril dostatecne presne. Nevite o nejakem lepsim reseni? Diky predem. Mirek
Re: textarea size
html element textarea ma primo atributy cols (pocet sloupcu v jednotce prumerne sirky znaku) a rows (pocet radku). Pokud textarea generujete pomoci jsf tagu h:inputTextarea ..., tak ten ma analogicky pojmenovane atributy. Mirek [EMAIL PROTECTED] napsal(a): hi all, da sa nejako pomocou html, javascriptu, ... povedat, aby sirka tagu textarea bola napr. na 30 znakov a nie aby sa prisposobovalo najdlhsiemu textu v option? Marian Stevlik (Michal) IS programmer / developer GAMO a.s. Kyjevske nam. 6 974 04 Banska Bystrica web: www.gamo.sk mail: [EMAIL PROTECTED] tel: +421 48 4372098, 4137935, 4372111 gsm: +421 905 462010 icq: 38493645 skype: majklbb
Re: Exception handling - teorie vs praxe
Ja ja, svata pravda, to o tech parametrech metody, a o logovani podstatnych vs. nepodstatnych vyjimek. Do kamene tesat :-)) Mirek Jiří Melichna napsal(a): Dobry den, vicenasobny zapis vyjimky je lepsi pro analyzu a podle me nevadi ani v provozu beznemu dohledovemu systemu jako je napr. HP OpenView, ktery log monitoruje. Dulezite je spise zvazit, jaka vyjimka se loguje a jakym zpusobem. Casto dostanu k analyze provozni log, kde je videt, ze k nejake vyjimce doslo, ale malo kdy vyvojari pri zapisu do logu pridaji informace, jak byla metoda volana - napr. hlavni parametry. Mimochodem, i z pohledu vypisu parametru je velmi zadouci o vyjimce zapsat info tam, kde vznikla. Hledani a simulace chyby se tak dosti protahuje. Vinu na casto mizernem logovani nese trochu i casto pouzivany log4j. Vyvojar ma hodne debug informaci, ale zapomina, ze v provoznim prostredi se tento level az na vyjimky nepouziva. Casto pak dojde na prekvapeni a vyvojar se pidi, co delal uzivatel, ale to se nikdy nedovi, protoze log dostane ze supportu po dvou dnech... Dale se casto zamyslim, zda a jak patri do logu business vyjimka - napr. pri bezne pouzivanem prikladu s bankovnim uctem, bych v beznem logu urcite videl info o tom, ze se nekdo snazi vybrat vice, nez ma na uctu. Podle me toto do standardniho logu pro dohled nad systemem nepari, a takovato vyjimka by se mela osetrit a zaznamenat jinak (napr. do nejakeho auditniho subsystemu). Krome toho, jak jsem psal vyse, by casto vyvojari vyjimku zalogovali pokud mozno bez informace o cisle uctu a o castce, kterou se snazil nekdo vybrat :-). melichnj Původní zpráva Od: Stanislav Ošmera [EMAIL PROTECTED] Předmět: Re: Exception handling - teorie vs praxe Datum: 13.6.2006 18:34:31 Rozhodne se nezabyvejte tim ze vam nejaka vyjimka zaloguje vicekrat. Az vam z testovaciho strediska poslou popis chyby a log, tak budete jeste radi ze budete presne vedet kudy vyjimka bezela a kdy. Kdyz zalogujete pri vzniku tak nevite kdo ji kde sezral a jak na ni reagoval. Kdyz zalogujete az pri odchyceni tak zase nevite kde se poradne ta vyjimka vlastne vzala (mohla propadnout sakra dlouhym retezcem) A jak pise Leos, pri spolupraci vice firem je dulezity mit v logu ze ta vyjimka k vam pribehla z casti aplikace ktera neni vase. -- Stanislav Ošmera
Re: Exception handling - teorie vs praxe
Jedna z cest jak zabranit vicenasobnemu logovani je dusledne priradit kazde vyjimce jedinecne id a kontrolovat v log manageru, jestli toto id jiz bylo zpracovano nebo ne. Jestli vam toto pomuze, nevim, ale cesta to je. Otazka je, jestli logovat v okamziku vytvoreni a ne v okamziku zachyceni je spravna cesta, jak poskladat funkcni slozitou aplikaci. Toto je ale jenom namet na diskuzi, odpoved neznam (a asi ani jednoznacna neexistuje). Mirek Tomas Hubalek napsal(a): Podle me je mozne vyjimku logovat dvakrat a to jednou jako log.warn() v miste vzniku a jednou jako log.error nebo log.fatal v miste zachyceni. Neprijdete o ni, a mobil vam bude pipat, az to bude opravdu vazne ;-) Tom Lubos Vrba napsal(a): Ahoj *, mam jednu otazku ohledne exception handlingu. V designu projektu mame napsano, ze bysme meli nase Exceptions logovat v okamziku vytvoreni a ne v okamziku odchyceni. To nam pusobi radu problemu, pokud se chceme vyhnout double logovani teze vyjimky. Pri hledani proc to tak ma byt jsme narazili na dve veci: 1. tym vyvojaru je mlady a nezkuseny, tudiz je mozne, ze by vyjimku chytil a zahodil bez toho aby ji zalogoval. 2. aplikace je volana z produktu 3. stran, pres WS a pokud se vyhodi v nasi aplikaci vyjimka je treba aby jsme ji i zalogovali. V pripade chyby database dedime vyjimku z Runtime exception Podle meho nazoru lze oba pripady urcite obejit, 1. je absolutni nonsence a 2. zde je otazka zda pouzivame spravne Runtime chyby a zda lze tento problem resit jinak. Chtel bych znat vas nazor. Diky, L.
Re: JSP - prace s cestami
Netusim, jestli to pomuze, ale resenim by bylo xml soubory cist pres classLoader.getResourceAsStream(xmlfilename) a zbytek nechat na classLoaderu, ktery by ale musel mit na sve classpath i vami pouzivane xml soubory. Mirek [EMAIL PROTECTED] napsal(a): Dobry den, mam problem se kterym si nevim rady jak resit. Google nepomaha, asi se blbe ptam. Problem je nasledujici. Mam webovy projekt ve kterem se hodne pracuje s xml souborama. Napsal jsem si knihovny, ktere v JSP nacitam pres javaBeany hlavne proto, protoze muzu vyuzit scope parametr, ktery je v tomto pripade dulezity. Nicmene resim jak zajistit rozumne zjistovani cest k xml souborum. Mam napsanou knihovnu, ktera mi zpracovava obsah xml souboru. Nebo mam knihovnu vytvarejici connect na databazi a potrebuju z properties souboru nacist pristupove udaje. Knihovnu pro praci s XML inicializuji v JSP pres useBean, ale potrebuji, aby proparsovany obsah se vykonal v konstruktoru. Konstruktoru nemuzu ale predat parametr, jinak by to neslo pres usebean. setProperty to taky neresi. Nechci v kazde knihovne psat ty cesty rucne. Jednak protoze ty cesty se meni. Jina cesta, kdyz knihovnu pouzivam jako java aplikaci, jina cesta kdyz to volam z JSP jako web project na mem develop prostredi a jina na serveru. Taky jak jsem rikal, to pracuje s ruznymi soubory na ruznych mistech. Chtel bych to mit nekde rozumne na jednom miste nebo neda se nejak zjistovat z nejakeho objektu fyzicky kde je soubor na disku? Dekuju za jakoukoliv pomoc a omluvte lama dotaz. This message was sent using IMP, the Internet Messaging Program.
Re: EJB3 a Netbeans 5.0 a 5.5
Dekuji za obsahlou napovedu, vyzkousim jenom co budu mit chvilku na samostudium. Mirek URBAN Leos napsal(a): Zdravím, neporadím s Netbeans 5.5 (i když jsem je také zkoušel) ale já to pod 5.0 (s cílovým AS JBOSS) dělám takto: Založím projekt X-EAR, který obsahuje jen v META-INF soubor application.xml. Tento projekt má v build.xml napsáno, které jiné projekty musí dokopírovat a že se má přejmenovat. target name=-post-jar property name=ear_name value=Performance/ delete file=../${ear_name}-EAR/dist/${ear_name}-EAR.jar / copy file=../${ear_name}-EBS/dist/${ear_name}-EBS.jar todir=dist/ copy file=../${ear_name}-SBI/dist/${ear_name}-SBI.jar todir=dist/ copy file=../${ear_name}-SBS/dist/${ear_name}-SBS.jar todir=dist/ ear earfile=dist/${ear_name}.ear apxml=src/META-INF/application.xml fileset dir=dist include name=*.jar/ /fileset fileset dir=dist include name=*.war/ /fileset /ear /target A pak založím projekty X-EBS (Entity Beans), X-SBI (Session Beans Interfaces), X-SBS (Session Beans) ev. X-WAR. Tyto projekty mají pro úspěšný překlad nastaveny knihovny s J2EE5, Vám samozřejmě stačí jen X-SBS a X-SBI. Jednotlivé projekty mají mezi sebou vazby, používají se mezi sebou. SBI používá EBS, SBS používá SBI a EBS. Funguje s JBOSS bez problémů. SBI a SBS jsou oddělené, abych klientovi mohl jednoduše podsunout jenom interfacy bez implementačních tříd (bezpečnost). Jinak by to klidně mohlo být v jednom JARu. Sunovský server jsem zkoušel, moc se mi líbilo ovládání (a AS jako takový) ale co se týká EJB3 tak mne velmi zarazilo, že při definici vazeb to vyžadovalo do kódu entity beany přidat TopLink anotace, což jsem prostě nezkousnul. Kromě toho to fungovalo blbě s Postgresem (který to tedy ani oficiálně neumělo). Leoš
Re: EJB3 a Netbeans 5.0 a 5.5
Takze vysledek, presne podle vaseho navodu, je ten samy co pred tim. Mohl by jste mi prozradit co pouzivate za knihovny JavaEE 5? Mirek Mirek Stohr napsal(a): Dekuji za obsahlou napovedu, vyzkousim jenom co budu mit chvilku na samostudium. Mirek URBAN Leos napsal(a): Zdravím, neporadím s Netbeans 5.5 (i když jsem je také zkoušel) ale já to pod 5.0 (s cílovým AS JBOSS) dělám takto: Založím projekt X-EAR, který obsahuje jen v META-INF soubor application.xml. Tento projekt má v build.xml napsáno, které jiné projekty musí dokopírovat a že se má přejmenovat. target name=-post-jar property name=ear_name value=Performance/ delete file=../${ear_name}-EAR/dist/${ear_name}-EAR.jar / copy file=../${ear_name}-EBS/dist/${ear_name}-EBS.jar todir=dist/ copy file=../${ear_name}-SBI/dist/${ear_name}-SBI.jar todir=dist/ copy file=../${ear_name}-SBS/dist/${ear_name}-SBS.jar todir=dist/ ear earfile=dist/${ear_name}.ear apxml=src/META-INF/application.xml fileset dir=dist include name=*.jar/ /fileset fileset dir=dist include name=*.war/ /fileset /ear /target A pak založím projekty X-EBS (Entity Beans), X-SBI (Session Beans Interfaces), X-SBS (Session Beans) ev. X-WAR. Tyto projekty mají pro úspěšný překlad nastaveny knihovny s J2EE5, Vám samozřejmě stačí jen X-SBS a X-SBI. Jednotlivé projekty mají mezi sebou vazby, používají se mezi sebou. SBI používá EBS, SBS používá SBI a EBS. Funguje s JBOSS bez problémů. SBI a SBS jsou oddělené, abych klientovi mohl jednoduše podsunout jenom interfacy bez implementačních tříd (bezpečnost). Jinak by to klidně mohlo být v jednom JARu. Sunovský server jsem zkoušel, moc se mi líbilo ovládání (a AS jako takový) ale co se týká EJB3 tak mne velmi zarazilo, že při definici vazeb to vyžadovalo do kódu entity beany přidat TopLink anotace, což jsem prostě nezkousnul. Kromě toho to fungovalo blbě s Postgresem (který to tedy ani oficiálně neumělo). Leoš
Re: EJB3 a Netbeans 5.0 a 5.5
Pokud dobre rozumim projektu Glassfish, SunApp server 9.0 je distribuci projektu Glassfish, ktery mam nainstalovany a bezi. Deploy probehne v poradku, jenom se do jsf beanu nedostane instance ejb, tj. neprobehne dependency injection. Mohl by jste mi poslat nejaky hodne jednoduchy priklad, vcetne klienta (na privatni mail, ne do konference)? Dekuji. Mirek Ondřej Fafejta KYBERIE napsal(a): Mirek Stohr wrote: Takze vysledek, presne podle vaseho navodu, je ten samy co pred tim. Mohl by jste mi prozradit co pouzivate za knihovny JavaEE 5? Mirek Zdravím! Na JavaEE5 od sunu je dobré použít glassfish. https://glassfish.dev.java.net/public/downloadsindex.html My to používáme zatím pouze pro EJB3. Píšu to v netbeans 5.0 a žádné problémy s tím nemám. Projekt je normálně jako General/ Java application. Knihovny, které používám na straně klienta jsou tyto: lib/javaee.jar lib/appserv-rt.jar (tento soubor je potřeba k vůli junit testům). Výsledný jar, který kopíruju do autodeploy neobsahuje žádné knihovny. Vše má aplikační server v sobě. Zatím jsem nezkoušel napojit EJB statelessbeany na JSF. Fafi
Re: EJB3 a Netbeans 5.0 a 5.5
Mate pravdu, do vysledneho .ear souboru jsem stejne zadne knihovny nepribaloval, takze moje otazka na knihovny u prekladace byla naprosto mimo. Netbeans 5.5 generoval soubory sun-application.xml a sun-web.xml, ktere ale mely trivialni obsah (prvni obsahloval pouze tag sun-application / a druhy informaci o context-root atd.). Presto jsem je zkusil pribalit, ve vysledku se nic nezmenilo. Jak vypada vas application.xml? Jsem z toho jelen, danek i srnec :-)) Dekuji za rady, a mohl by jste mi pripadne poslat (na privatni mail, ne pres konferenci) hodne jednoduchy priklad, vc. klienta? Dekuji. Mirek URBAN Leos napsal(a): Takze vysledek, presne podle vaseho navodu, je ten samy co pred tim. Mohl by jste mi prozradit co pouzivate za knihovny JavaEE 5? Mohl, ale bude Vam to k nicemu, jsou to knihovny implementace EJB3 z JBOSSu, klicove jsou jboss-ejb3.jar a jboss-ejb3x.jar. Abych rekl pravdu tak jich tam mam navic asi i vic nez v realu je pro preklad potreba. Ale jak uz psal pan Fafejta - ty knihovny jsou nutne jen pro preklad. Zadne se nepridavaji do vysledneho EARu (ani vnorenych JARu). Jeste si matne vzpominam - Sun si tam pridaval dovnitr nejake vlastni soubory, ktere byly tusim uvozeny sun nebo tak nejak. Neco jako treba u JBOSSu je mozne pridat jboss-web.xml a v nem specifikovat napriklad bezpecnostni role. Kouknete v te 5.5 co v tech souborech je - mozna to tam ten SunAppServer vyzaduje a bez toho to nejede. Leos
EJB3 a Netbeans 5.0 a 5.5
Vazeni kolegove, v ramci pripravy sama sebe na EJB3 jsem provedl nasledujici experiment: 1/ Vytvoril jsem si projekt v Netbeans 5.0 (s naimportovanou knihovnou javaee.jar obsahujici Java EE 1.5), ktery byl sice oznacen jako java aplication ale svou strukturou vyhovoval Java EE 1.5. Zkompiloval, poskladal do patricneho earu, deployoval na Sun app. server 9.0 -- a nefunguje (viz. nize). 2/ Pokud jsem ale na tentyz projekt pouzil Netbeans 5.5 (tentokrat jiz byl projekt vytvoren jako Java Enterprise Application), zkompiloval, poskladal, deployoval na tentyz server ... a funguje. JDK je tataz (1.5.04), Sun app. server je tentyz. Tj., co nechapu, co dela Netbeans 5.5 navic? Tj., presneji, co krome kompilace musim provest abych ziskal fungujici EE aplikaci vyhovujici specifikaci Java EE 1.5? Pozn.: Projekt je nejjednodussi mozny: session stateless ejb HelloBean (s interface HelloLocal), ten je volan z jsf managed beanu asi takto: @EJB private HelloLocal hbean; private String response; public String sayHello(){ response = hbean.sayHello(mirek); //(*) return ok; } na radku oznacenem (*) se v pripade 1 vyhodi NullPointerException. HelloBean a HelloLocal ma v obou pripadech stejny kod. ear package je v obou pripadech co do struktury totez. Stejne application.xml, stejne web.xml, stejne faces-config.xml. Aplikace nejsou na serveru ve stejnou dobu obe dve, vzdy jenom jedna z nich. Kompilace se vzdy provadi se -source 1.5 -target 1.5. Deployment probehne v obou pripadech bez problemu. Diky za objasneni ci napovedu. Mirek
Re: rozdiel dvoch datumov java.sql.Date
Nedavno jsem resil prakticky totez. java.sql.Date rozsiruje java.util.Date, tj. ma metodu getTime(), ktera vraci pocet milisekund od 1.1.1970. No a rozdil deleno poctem milisekund za den plus nejake ty veci kolem :-)) Mirek Ivan Polák napsal(a): Ahoj, Potreboval by som vypocitat pocet dni medzi dvoma datumami, ktore su typu java.sql.Date. Neviete nahodou niekto poradit ako na to. Dakujem Ivan
JSF a HTML tag
Vazeni kolegove, narazil jsem na nasledujici problem: webova aplikace naprogramovana v jsf, na strance se vstupem se zadava stringova polozka unit. Do teto polozky uzivatel nekdy zapise kousek HTML kodu (typicky msup3/sup). Na strance vysledku je pro zobrazeni teto polozky neco jako h:outputText value=#{myBean.unit} / a v browseru se mi zobrazi presne to, co uzivatel zadal, tj. msup3/sup, misto m^3. Jak toto vyresit? Nechce se mi delat specialni rozbalovaci policko se vsemi moznymi jednotkami ktere prichazeji v uvahu. Nehlede k tomu, ze analogicky muze dojit k zobrazovani kusu HTML kodu nacitanych napr. v popiskach zbozi z db, apod. Diky za napovedu. Mirek
Re: JSF a HTML tag
Diky, ma escape, to bude asi ono. Mirek Burdik Petr napsal(a): mrkni na h:outputText jestli nema neco jako escapeXML nebo escapeHTML. Pet Mirek Stohr wrote: Vazeni kolegove, narazil jsem na nasledujici problem: webova aplikace naprogramovana v jsf, na strance se vstupem se zadava stringova polozka unit. Do teto polozky uzivatel nekdy zapise kousek HTML kodu (typicky msup3/sup). Na strance vysledku je pro zobrazeni teto polozky neco jako h:outputText value=#{myBean.unit} / a v browseru se mi zobrazi presne to, co uzivatel zadal, tj. msup3/sup, misto m^3. Jak toto vyresit? Nechce se mi delat specialni rozbalovaci policko se vsemi moznymi jednotkami ktere prichazeji v uvahu. Nehlede k tomu, ze analogicky muze dojit k zobrazovani kusu HTML kodu nacitanych napr. v popiskach zbozi z db, apod. Diky za napovedu. Mirek
Re: Změna URL
Muzes lepe specifikovat otazku? Pokud mas URL jako string, staci tam ty parametry pridat prostym + :-)) Ale to asi neni to na co se ptas, ze. Mirek Martin Majer napsal(a): Ahoj, mám URL třeba http://www.adresa.cz/view/test a potřeboval bych ho nějak změnit na http://www.adresa.cz/view?show=test. Jak se to dá udělat? Pomocí servlet filtrů?
Re: Why I Hate Frameworks
Oh jak bolestne pravdive! Diky za vyborny clanek, doporucuji ostatnim. Mirek Martin Kuba napsal(a): Nádherný článek :-) http://discuss.joelonsoftware.com/default.asp?joel.3.219431.12 Makub
Re: Spolupráce aplikací
Pokud vase aplikace na app. serveru vyuzivaji technologii EJB, nejcistsi a nejjednodussi reseni je vyuziti remote interface techto EJB. Pak dokonce nemusite mit tentyz app. server pro aplikace. Vice viz. napr. Java EE tutorial od Sunu. Mirek Jakub Příkazský napsal(a): Zdravím, potřebuji poradit s následujícím problémem. Chci provozovat více aplikací (app1,...,appN) v aplikačním serveru. Jak co nejčistším (nejsystémovějším) a nejefektivnějším způsobem zajistím jejich vzájemnou spolupráci? Příklad aplikace app1 obsahuje např. komponentu (objekt, několik objektů nebo obecně jakákoliv data), která jsou využívána další aplikací (aplikacemi). Dokážu si představit, že způsobů, jak problém řešit je více např. pomocí databáze, ale to není co hledám. Dalším může být i webová služba, které se budou aplikace dotazovat. Moje úvahy se ubírají směrem k RMI/RPC a tak by mě zajímalo, zda jsou mé úvahy správné, případně zda máte někdo podobnou zkušenost. díky Jakub
Re: posilani mailu z javy
Nezkoumal jsem vas kod ale napadlo mne jestli vubec smtp.seznam.cz je spravny server pro posilani posty: $ dig seznam.cz mx ; DiG 9.3.1 seznam.cz mx ;; global options: printcmd ;; Got answer: ;; -HEADER- opcode: QUERY, status: NOERROR, id: 8571 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 4 ;; QUESTION SECTION: ;seznam.cz. IN MX ;; ANSWER SECTION: seznam.cz. 426 IN MX 20 mx2.seznam.cz. seznam.cz. 426 IN MX 10 mx1.seznam.cz. ;; AUTHORITY SECTION: seznam.cz. 8137IN NS ns.seznam.cz. seznam.cz. 8137IN NS ms.seznam.cz. ;; ADDITIONAL SECTION: mx1.seznam.cz. 426 IN A 212.80.76.26 mx1.seznam.cz. 426 IN A 212.80.76.44 mx1.seznam.cz. 426 IN A 212.80.76.45 mx2.seznam.cz. 426 IN A 212.80.76.42 Z toho mi vyplyva, ze pokud chcete poslat mail na adresu [EMAIL PROTECTED], musite kontaktovat server mx1.seznam.cz, v pripade ze neodpovi zalozni je mx2.seznam.cz. Neni toto reseni vaseho problemu? Mirek [EMAIL PROTECTED] napsal(a): Snažím se odeslat mail z javovského programu, ale zatím bezůspěšně. Všechny pokusy připojit se na seznam končí Unknown SMTP host: smtp.seznam.cz Zde (viz dole) jsem naše kód, který by měl snad fungovat , ale nefunguje, stejně jako všechny předchozí pokusy. Netušíte prosím někdo nějaký háček ? Díky. J.N. http://forum.java.sun.com/thread.jspa?threadID=615715tstart=0 --- -- Without SSL connection, Normal SMTP --- import java.util.Properties; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; import java.io.UnsupportedEncodingException; import java.security.*; import java.util.Properties; import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeUtility; public class AttachExample { public static void main (String args[]) throws Exception { System.getProperties().put(proxySet,true); System.getProperties().put(socksProxyPort,1080); // ip adresa a port proxy System.getProperties().put(socksProxyHost,192.168.155.1); Properties props = System.getProperties(); String from = [EMAIL PROTECTED]; String to = [EMAIL PROTECTED]; String filename = AttachExample.java; // Get system properties final String username = USERNAME; // jmeno a heslo z mailoveho uctu final String password = PASSWORD; props.put(mail.user, username); props.put(mail.host, smtp.seznam.cz); props.put(mail.debug, true); props.put(mail.store.protocol, pop3); props.put(mail.transport.protocol, smtp); Session session = Session.getDefaultInstance(props, new Authenticator(){
JSF selectOneRadio a jeho pocatecni hodnota
Vazeni kolegove, narazil jsem na nasledujici problemek: Mam JSF konstrukci: h:selectOneRadio value=#{editContentBean.habit} f:selectItems value=#{habitValuesBean.habitValues} / /h:selectOneRadio jejimz ucelem je zobrazit dva radio buttony, jeden pro true, druhy pro false (je mozno vybrat prave jeden, true nebo false). Hodnoty nastavene v f:selectItems ... jsou takoveto: SelectItem(Boolean.TRUE, rb.getString(false-name)); SelectItem(Boolean.FALSE, rb.getString(true-name)); kde rb je resource bundle obsahujici popisky jednotlivych moznosti pro promennou habit. Managed bean editContentBean ma Boolean promennou habit, kterou takto nastavuji. Problem je s pocatecni hodnotou -- v konstruktoru ji nastavim defaultne na FALSE, a pri prvnim pristupu na stranku bych chtel videt, jak je radio button pro false oznaceny. Ale nevidim. V cem je problem? Komponenty ale spolupracuji, pokud manualne vyberu treba false, pak managed bean tuto hodnotu dostane a dal s ni pracuje. Pouzivam MyFaces implementaci JSF, v JBoss 4.0.3. Pozn: Pouzit selectBooleanCheckbox nemuzu, kvuli popiskum (true ma jinou popisku nez false). Vse jsem maximalne zestrucnil, doufam ze ne na ukor smysluplnosti. Dekuji za kazdou napovedu. Mirek
Re: Cteni ze socketu
Neco asi podobneho jsem pred casem resil, pokud si dobre vypominam reseni bylo jednak si podrobne precist javadoc k socket.getInputStream(): kopirovano z javadoc *** Under abnormal conditions the underlying connection may be broken by the remote host or the network software (for example a connection reset in the case of TCP connections). When a broken connection is detected by the network software the following applies to the returned input stream: * The network software may discard bytes that are buffered by the socket. Bytes that aren't discarded by the network software can be read using read. * If there are no bytes buffered on the socket, or all buffered bytes have been consumed by read, then all subsequent calls to read will throw an IOException. * If there are no bytes buffered on the socket, and the socket has not been closed using close, then available will return 0. ** A taky bylo potreba pro socket nastavit jeho timeout, aby necekal vecne pokud druha strana potichu chcipne. Timeout socketu se nastavuje v jeho metode connect(SocketAddress, int). Mirek Tomas Hubalek napsal(a): Zdar, mam takovy dotaz na java.net.Socket. Mam aplikaci, ktera posloucha na nejakem portu, pokud prijde pozadavek, tak otevre Socket a prijima pozadavky. Je tam nejaky InputStream, pres ktery ze ze Socketu cte. Dokud chodi data, tak se zpracovavaji a jakmile prestanou, socket se ukonci. Neco jako in = new BufferedReader(new InputStreamReader(socket.getInputStream())); while ((data = in.readLine()) != null) { ... zpracovavam data... } Mam totaz: Muze se stat, ze kdyz klient (co posila dtaa do socketu) zdechne, tak ze mi to zustane zamrznute v readLine() ? Cekal bych nejakou IOException Diky za jakekoliv info Tom
Re: EJB3 a objemna data v objektu
Presne toto jsem pred casem resil (taktez obrazky z db, ale v J2EE 1.4). Vytvoril jsem si nakonec dve entity: ImageEnvelope (obsahuje vsechny informace o obrazku, mimo jeho binarnich dat) a ImageData (obsahuje prave jenom data). Vzajemne jsou svazany svymi id (ImageEnvelope zna id ImageData, ImageData zna id ImageEnvelope). Pokud klient chtel napr. rozmery obrazku, jeho mime-type, apod., dostaval to z ImageEnvelope, a jenom pokud chtel binarni data, dostal ImageData. Snad je to ze strucneho popisu jasne a moc jsem to nezamotal :-)) Tusim se tento design pattern jmenuje zastupce. Mirek Martin Bednar wrote: Muzu se zeptat jak se resi nasledujici problem ? Mam EJB3 entitu ktera nese informace o grafickych objektech. Zjednodusene vypada takto. class GraphicsResource { private Integer id; private String name; private ResourceType type; private Date inserted; private Date lastModified; private String description; ... ... private byte[] icon; private byte[] thumbnail; private byte[] fullSizeImage; get...(); set...(); } jenze property icon,thumbnail,fullSizeImage (specialne samozrejme fullSizeImage) jsou pomerne velke a pri vetsine operaci s objektem nepotrebne. Da se tato situace nejak transparentne resit ? nakonec jsem skoncil u toho ze jsem tridu pozmenil tak ze misto byte[] propert jsem zavedl private ListGraphicsResourceImage images; //Anotacema deklarovana jako LAZY kolekce a pridal enum GraphicsResourceImageType{ ICON, THUMBNAIL, FULLSIZE}; class GraphicsResourceImage{ GraphicsResourceImageType type; byte[] image; } No a pak mam v DAO objetu metody; loadGraphicsResource(Integer id); loadGraphicsResourceWithThumbnail(Integer id); loadGraphicsResourceWithIcon(Integer id); loadGraphicsResourcewithFullSizeImage(Integer id); A podle toho ze tak zhruba tusim co bude klient s objektem provadet tak si ho loadnu v prislusnem stavu. No a popravde receno se mi to ani trochu nelibi, nicmene jsem zadny elegantni pattern na toto tema na netu nenasel (nebo jsem spatne hledal ?) tak by me zajimalo jak z tohodle ven. respektive nasel jsem cosi o transparetnim dohravani lazy objektu v Hibernate Wiki, ale je to uzce svazane s Hibernate a pro EJB3 (implementace JBoss) dle meho nepouzitelne. Diky Bedy
Sun App. server a longvarchar
Jiz jednou jsem zasilal, ale do konference nedorazilo, ted konference snad znovu funguje tak posilam znovu (problem mezitim nijak nevyresen, Google mlci). Vazeni kolegove, ted jsem narazil na opravdu prapodivne chovani CMP EJB provozovaneho na Sun Java System Application Serveru (verze 8.1_02). Konkretne se jedna o toto: CMP EJB myCmpBean ma property myCmpProp typu String, ktera ale muze byt dlouha, proto ji v db (MySQL) odpovida sloupec typu TEXT (maximalni delka 65535 znaku). Vse funguje jak ma pokud ale myCmpProp neni delsi nez cca 20 znaku, pak pri kazdem ulozeni nove hodnoty je _zkracena_ o posledni znak. Cteni je bez problemu. Nevite v cem je chyba? Jedinou zminku v dokumentaci jsem nasel u sun-ejb-mapping.xml, kde je uvedeno, ze prislusny element defaultne musi mit fetched-withnone//fetched-with, nikoliv fetched-withdefault//fetched-with, jak je u stringu do 255 znaku (tj. db VARCHAR). Ale jakekoli zmeny tohoto elementu nevedou ke zmene, tj. vyse uvedene se deje stale. Diky za napovedu. Mirek
Re: JDBC a uzavření aktivního spjení
A proc pred nastavenim connection na null nezavolate connection.close(); v okamziku, kdy je to potreba, tj. po ukonceni posledniho prikazu? A az pote by jste predal objekt connection do gc. Mirek Petr Zajíc wrote: Zdravím, řešil někdo podobný problém? Mám JDBC connection, který (přes ODBC-JDBC) vytvoří statement a ukládá ve smyčce data do souboru MDB pomocí sady instrukcí stmtMDB.executeUpdate... načež nastaví connection na null a skončí. Problém je v tom, že vždy právě poslední ze sady příkazů se neprovede. Pokud dám před zavřením connection Thread.sleep(2000) tak se provede i poslední příkaz. Evidentně to tedy souvisí s dobou zpracování dotazu. Nedá se to řešit nějak elegantněji? Petr Zajíc
jsf a html div element
Vazeni kolegove, mam nasledujici problem: Na jsf strance mam konstrukci div class=tabulka h:dataTable var=a values=#{listingBean.elementsOfA} rendered=#{!empty listingBean.elementsOfA} /h:dataTable /div tj. h:dataTable element vytvori HTML tabulku obsahujici nejaky vypis. Pokud je vypis prazdny, tabulka se vubec nevytvori. Spousta tagu je tam vynechana pro strucnost. OK, vsechno fungovalo jak melo dokud si grafik neusmyslel, ze tabulku musi obkrouzit jak vyse naznaceno HTML elementem div, aby ji mohl priradit nejake specialni pozadi a dat kolem ramecek. Tento ramecek je az mimo tabulku, je trochu vetsi. Ale v pripade, ze se tabulka vubec nevykresluje (viz. vyse), tam zustane prazdny ramecek, coz hezky nevypada. Jak toto zaridit? Pokud to cele oblozim h:panelGroup rendered=.../h:panelGroup, element div/div se mi vyhodi az ven, takze resenim to neni. Resenim by bylo generovat div s pomoci jsf tagu, ale ten jsem nenasel. Diky za kazdou napovedu. Mirek
Re: jsf a html div element
Dekuji za odpoved. Toto jsem potreboval vedet. Mirek Pavel Réder wrote: Ale v pripade, ze se tabulka vubec nevykresluje (viz. vyse), tam zustane prazdny ramecek, coz hezky nevypada. Jak toto zaridit? Pokud to cele oblozim h:panelGroup rendered=.../h:panelGroup, element div/div se mi vyhodi az ven, takze resenim to neni. Resenim by bylo generovat div s pomoci jsf tagu, ale ten jsem nenasel. On tam proste neni. Ale je v Tomahawku (rozsireni MyFaces): http://myfaces.apache.org/tlddoc/tomahawk/t/div.html Pavel
JSF converter
Vazeni kolegove, potykam se s nasledujicim problemem v JSF converteru, ktery prevadi muj vlastni objekt (GroupType) na string. Konkretne v metode public String getAsString(javax.faces.context.FacesContext _facesContext, javax.faces.component.UIComponent _uIComponent, Object _obj) { Locale loc = _facesContext.getExternalContext().getRequestLocale(); // vraci cs, presne jak je nastaveno ResourceBundle rb = ResourceBundle.getBundle(mypackage.GroupTypeRB, loc); // vraci mypackage.GroupTypeRB, nikoliv mypackage.GroupTypeRB_cs // jak bych cekal, ten pritom existuje GroupType type = (GroupType)_obj; String msg = rb.getString(type.getRBKey()); // vrati msg z mypackage.GroupTypeRB, pochopitelne return msg; } Nevite, kde delam chybu, tj. proc ResourceBundle.getBundle(basename, locale) vraci resource pro defaultni locale, kterym je us, nikoliv pro locale cs, jak mam na strance nastaveno (a converter to vi)? Pozn.: SunOne 8.1, JDK 1.5 Dekuji za kazdou napovedu. Mirek
Re: Kniha na JSP
Tutorial: Sunovsky J2EE tutorial (http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.html), tuším kapitoly 12 a výše. Knihy: Web development with JSP (Fields,Kolb, Bayern) a JSP Tag libraries (Shachor, Chace, Rydin), oboje Manning. Popisuji sice starsi verze JSP, ale pro uvedeni do problematiky naprosto dostacuji i dnes. Na www.manning.com jsou i nejake kapitoly na ukazku, tusim. Mirek Zdenek Kubovec wrote: Ahoj vsichni, prosim poradte nejakou dobrou knihu ci tutorial na JSP. Diky Zdenek
Re: NetBeans spustenie webapp s parametrom
project properties, polozka run. Mirek [EMAIL PROTECTED] wrote: Hi all Co mam a kde to mam napisat v NetBeans 4.1 aby sa mi spustila moja webapp pre debugovanie s parametrom t.j.: ...index.jsp?param1=aaaparam2=bbb... Marian Stevlik IS programmer GAMO a.s. Kyjevske nam. 6 974 04 Banska Bystrica mail: [EMAIL PROTECTED] tel: +421 48 4372098, 4137935, 4372111 gsm: +421 905 462010 icq: 38493645
Re: NetBeans spustenie webapp s parametrom
Tak to bohuzel asi nepomohu, mne to bezi OK. Rozdil ve verzi JDK by to zpusobovat asi nemel. Zkuste potrapit Google ... Mirek [EMAIL PROTECTED] wrote: Tak to opravdu netusim, kde mate chybu. Co je to za projekt? Jaky app. server pouzivate? Jake presne parametry nastavujete? Ja mam Netbeans 4.1 (jdk 1.5), deploy na interni Tomcat 5.5.7 a presne nastaveni relative URL mam index.jsp?parameter1=aaparameter2=bb, ktere mi na strance index.jsp nastavi HttpServletRequest parametery parameter1 na hodnotu aa, parameter2 na hodnotu bb. Mirek Jednoduch projekt, tiez pouzivam NetBeans 4.1 (jdk 1.4.2_9), tiez interny Tomcat 5.5.7, ale bezat to nechce :( Ked vsak zavolam z IE http://127.0.0.1:8084/myapp/index.jsp?param1=aaparam2=bb, tak ti atributy sa nacitaju, len pri debugovani ich tam nedostanem :( Marian Stevlik IS programmer GAMO a.s. Kyjevske nam. 6 974 04 Banska Bystrica mail: [EMAIL PROTECTED] tel: +421 48 4372098, 4137935, 4372111 gsm: +421 905 462010 icq: 38493645
Re: konfiguracia
Napadly me dve reseni: 1/ napsat specialni kratky instalacni program, ktery provede a) precte ze stavajiciho .war konfiguraci b) precte z noveho .war (ktery je doposud nekde jinde) konfiguraci c) srovna, a uploadne ten spravny 2/ dat kofiguraci nekam do databaze (mate-li ji), ci na ldap server, ci tak podobne -- pak vas problem prakticky odpada, jedina konfigurace ktera je potreba je pro pristup ke kofiguracnim udajum a to se moc casto asi menit nebude. Mirek Radovana Straube wrote: Dobry den, Nasa firma vyvinula produkt, ktory priebezne zakaznikom updatujeme. U niektorych zakaznikov mame pristup na server, niektorym posielame iba war subory a zakaznik ich sam updatuje. Kazdy war subor obsahuje specificky konfiguracny subor pre toho-ktoreho zakaznika. Niekedy sa stane, ze si zakaznik sam zmeni konfiguraciu a ked mu posleme update, tak sa konfiguracny subor premaze. A potom dostavame telefonaty, ze nic nefunguje. Tento problem by sme chceli nejak elegantne vyriesit. Zatial sme rozmyslali nad dvomi moznostami, ale ani jedno nie je idealne: 1. spravit war subor, ktory bude obsahovat iba konfiguraciu. Ale konfiguraky obsahuje zvacsa citlive data, a nemali by byt zvonka pristupne. 2. Ulozit konfiguraky niekde na file system, ale z toho by asi niektori paranoicki administratori neboli nadseni, ze im nejaka aplikacia pristupuje k suborom mimo svojho adresara. Za pripadne riesenia vopred dakujem Radovana Straube __ Yahoo! Mail - PC Magazine Editors' Choice 2005 http://mail.yahoo.com
Re: kniha o EJB
Nejlepsi, co jsem nasel pro skutecne zaklady EJB, je Java J2EE tutorial (http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.html), jsou to kapitoly tusim 23-32. Podotykam ze se jedna opravdu o zaklady EJB, takove veci jak z EJB poskladat funkcni aplikaci tam moc rozebirane nejsou. K tomu je dobre mit vhodne vyvojove prostredi ktere alespon ze zacatku ohlida ruzne veci za vas, resp. formou nejake napovedy vam rekne na co jste jeste zapomnel, nebo tak neco. Ja pouzivam Netbeans 4.1, plna spokojenost (dela to co potrebuju). Mirek Pavel Kubal wrote: Zdravim, uz nejakou dobu patram po dobre knize o EJB. Na ceskem trhu asi nic kvalitniho nebude. Mozna vubec nic, tak jsem se chtel zeptat jestli nekdo nemuzete doporucit knihu pro zaklady EJB. S pozdravem Pavel Kubal UNICORN a.s. http://www.unicorn.cz tel. : 728 102 328
Re: Job Queue
Pokud nemuzete pouzit java 1.5, zkuste se podivat na http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html. Velmi dobre zkusenosti. Mirek Filip Jirsák wrote: Zdravím, pokud používáte Java 5, porozhlédněte se po balíku java.util.concurrent, konkrétně třeba třída java.util.concurrent.ThreadPoolExecutor by mohla být to pravé. Pro Javu 2 tip nemám - jen přejděte na pětku :-) Filip Jirsák 2005/10/5, Tomas Hubalek [EMAIL PROTECTED]: Zdar, potreboval bych poradi, jestli neexistuje nejaka knihovna ci framework pro praci s joby ve fronte. Proste potrebuji, aby, kdyz si uzivatel zada nejaky dlouhotrvajici job ke zpracovani, aby se zaradil do fronty, az na nej prijde rada, aby se vykonal, pokud skonci s chybou, aby se neco stalo, po skonceni aby se poslal email tomu, kdo si to zadal. Omezeni na dobu zpracovani a multithreading by nebyl k zahozeni, ale neni podminkou. Verim, ze na to urcite uz bude nejake hotove udelatko, ale nic jsem nevygooglil. Asi bych preferoval reseni bez aplikacniho serveru. Diky za tip Tom -- Filip Jirsák [EMAIL PROTECTED]
Re: Head First Design Patterns
Ohledne dovozu zahranicni literatury doporucuji k prostudovani stranku http://www.ms.mff.cuni.cz/%7Emalej9am/doc/knihy/#JGN (nejsem jejim autorem, jenom kvituji s povdekem jeji existenci :-)) Mirek Jiří Hradil wrote: Ideon-zajimave, zajimave, po prepoctu ze vcerejsiho kurzovniho listku to z liber na koruny vychazi docela rozumne, provize jen nekolik malo procent. Ale uz nevim, jak to je s postovnym, z Amazonu jsem radeji kupoval knihy po 3-4, protoze po jedne by to stalo podstatne vic... Jinak co se tyce letecke prepravy Amazonu (tak alespon byla zduvodnena vysoka cena za postovne), pokud si pamatuju, tak konkretni objednavku mi Amazon.co.uk posilal ze skladu v Nemecku pekne po silnici :) Jirka Hradil 2005/9/30, [EMAIL PROTECTED] [EMAIL PROTECTED]: Knihy z Amazonu za koruny: www.ideon.cz Róbert Gál [EMAIL PROTECTED]Komu:Java konference@java.cz Odeslal: Kopie: konference-bounc Předmět: Re: Head First Design Patterns [EMAIL PROTECTED] 30.09.2005 13:04 Odpovězte prosím uživateli Java ak sme uz pri tom: kde si objednavate knihy? existuje nejaky cesky obchod, cez ktory by sa dali 'importovat' knihy z amaozn.com (bez postovneho a platit trebars v hotovosti)? (visa kartu nemam..) ci preferujete PDF knihy? ;-) [EMAIL PROTECTED] wrote: zpusobi nejspis, ze sednu a u Amazonu to objednam (coz by sama tahle zprava jiste nezpusobila).