Re: Image do DB
PøihodÃm svoji troÂku do mlýna - zrovna nedávno øeÂila jedna firma ukládánà obrázkù do MySQL, a ukázalo se to jako hodnì Âpatný nápad - výkon mizerný. Po pøepsánà na ukládánà do filesystému bìhá plynule. <[EMAIL PROTECTED]> pÃÂe v diskusnÃm pøÃspìvku news:[EMAIL PROTECTED] Ahoj, mám dotaz. Mám Image img a potøebuju ho uloÂit v Derby DB. VÂechny návody na netu pro ukládánà obrázkù do DB jsou pøes FileInputStream. BohuÂel mì u pøÃjde pøÃmo Image img a potøeboval bych ho uloÂit do DB. ZkouÂel jsem cestu pøes BLOB jenÂe se mì nepodaøilo pøevést Image na InputStream. Konkrétnì jsem zkouÂel pomocà ImageIO.createImageInputStream vytvoøit ImageInputStream a ten pak konvertovat do InputStreamu ale asi jsem dìlal nìco Âpatnì protoÂe Image img; InputStream inStream = (InputStream) ImageIO.createImageInputStream(img). mì vÂdycky vrátà null; nemohl by mì nìkdo nasmìrovat jak uloÂit Image img do DB. ZkouÂel jsem i pøes preparedStatement prepStat.setObject(3, img); ale i tak nic. Pøedem dÃky za jakoukoliv odpovìd Petr ps.: pøedpokládám Âe mì nedoÂlo nìco základnÃho a zkouÂÃm vymyslet kolo nebo nìco na ten zpùsob
Re: Spring HttpInvoker a dynamicke serviceUrl
myslite tu propertu serviceUrl? To mi prislo jako genialni napad (jednoduche, ale me by to nenapadlo), bohuzel se mi ji ale v aplikacnim kodu nepodarilo nastavit. Zkousel jsem to napr. tak, ze jsem se pokusil vytahnout celou beanu serverServiceHttpInvokerProxy a nasledne ji nastavit serviceUrl. ServletContext servletContext = getContext().getRequest().getSession().getServletContext(); WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext); UrlBasedRemoteAccessor httpInvokerProxyFactoryBean = (UrlBasedRemoteAccessor) wac.getBean("serverServiceHttpInvokerProxy"); httpInvokerProxyFactoryBean.setServiceUrl("//localhost:8080/server/remoting/serverService"); ztroskotalo to vsak na tom, ze serverServiceHttpInvokerProxy je proxy: java.lang.ClassCastException: $Proxy35 cannot be cast to org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean Taky sem zkousel nasetovat serverServiceHttpInvokerProxy do moji tridy kde mam business logiku, ale skoncilo to podobnou vyjimkou, ze nemuze konvertovat [$Proxy35] na dany typ a jeste to napsalo: no matching editors or conversion strategy found. Muzete prosim jeste poradit jak by se dala ta properta v aplikacnim kodu nastavit? Nebo jsem to cely spatne pochopil? > Původní zpráva > Od: Roman Pichlik <[EMAIL PROTECTED]> > Předmět: Re: Spring HttpInvoker a dynamicke serviceUrl > Datum: 26.2.2008 20:35:58 > > asi bych tuto danou propertu nenastavoval pres Spring, ale udelal bych > to vzdy v aplikacnim kodu. > > 2008/2/26 radovan deka <[EMAIL PROTECTED]>: > > Jde jenom o to vybrat vzdaleny endpoint v runtime, aplikacni rozhrani vsech > endpointu bude zname a stejne. Predem diky za radu. > > > > > > > Původní zpráva > > > Od: Roman Pichlik <[EMAIL PROTECTED]> > > > Předmět: Re: Spring HttpInvoker a dynamicke serviceUrl > > > Datum: 26.2.2008 18:31:09 > > > > > > > > > > > A jakou byste obecne doporucili technologii, aby se dal co nejsnadneji > splnit > > > pozadavek, ze vyber protejsi strany komunikace se deje az za behu > > aplikace. > > > > Bylo by to s RMI nebo Hessianem lepsi? A nebo Web service, o kterych > zatim > > > vubec nic nevim? > > > > > > a jde jenom o to vybrat vzdaleny endpoint v runtime a nebo bude > > > kompletne nezname aplikacni rozhrani endpointu tj. nevite jestli tam > > > bezi WebService, Hessian a RMI? > > > > > > > > > > > > > > > Původní zpráva > > > > > Od: Roman Pichlik <[EMAIL PROTECTED]> > > > > > Předmět: Re: Spring HttpInvoker a dynamicke serviceUrl > > > > > Datum: 24.2.2008 10:16:03 > > > > > > > > > > > > > > > > > > No to bude trohu problem, protoze chcete, aby se staticka konfigurace > > > > > chovala dynamicky. > > > > > > > > > > Jake jsou moznosti: > > > > > > > > > > - serviceUrl nastavovat programove, az potom co je ziskana instance > > > > > serverServiceHttpInvokerProxy > > > > > - serviceUrl dotahovat pres PropertyPlaceholderConfigurer viz > > > > > dokumentace. V takovem pripade se musi zmenit lifecycle beany a to > > na > > > > > lazy inicializaci a nebo scope prototype, v dusledku toho ze hodnota > > > > > nemusi byt znama pri inicializaci kontextu > > > > > - udelat ze serviceUrl beanu s vlastni factory viz dokumentace, > > ktera > > > > > bude v zavislosti na kontextu inicializovat jeji hodnotu. Problem se > > > > > zmenou lifecycle serverServiceHttpInvokerProxy pretrva > > > > > > > > > > > > > > > 2008/2/23 radovan deka <[EMAIL PROTECTED]>: > > > > > > Ahoj, muj predesly prispevek neni tak dulezitej, zjistil sem, ze > neni > > > zadnej > > > > > problem to zinicializovat rucne. Velky starosti mi vsak dela, jak > udelat, > > > abych > > > > > URL adresu druhe aplikace mohl zadavat az za behu prvni aplikace. > > Ted > tu > > > adresu > > > > > zadavam primo v kontextu v definici beanu: > > > > > > > > > > > > > > > > > > > > class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean"> > > > > > > > > > > value="http://localhost:8080/server/remoting/serverService"/> > > > > > > > > > > value="cz.vutbr.xkarel03.remote.ServerService"/> > > > > > > > > > > > > > > > > > > > > class="org.springframework.remoting.httpinvoker.CommonsHttpInvokerRequestExecutor"/> > > > > > > > > > > > > > > > > > > > > > > > > ja bych ale potreboval, abych mohl adresu > > > > > "http://localhost:8080/server/remoting/serverService"; zadat az ve > webovem > > > > > formulari, pac ta aplikace by mela umet komuikovat s vice jinymi > > > aplikacemi. > > > > > Predem diky za pripadne info. > > > > > > > > > >
Re: Autorizaènà knihovna
ZdravÃm, my použÃváme JBoss Drools spoleÄnÄ s frameworkem Seam. ZÃtra (27. února) se o tÄchto pÅÃstupových právech lechce zmÃnÃm na své pÅednášce. Pokud budete mÃt zájem, můžeme to pak jeÅ¡tÄ tÅeba troÅ¡ku probrat. S pozdravem Petr Ferschmann Lukas Kubasek pÃÅ¡e v Ne 24. 02. 2008 v 16:19 +0100: > Ahoj, Ondro, > > nevim, jestli to presne bude odpovidat tvym predstavam, ale zkus se > urcite podivat na JBoss Rules (http://www.jboss.com/products/rules). > To je framework implementujici Java Rule Engine API (JSR-94), kde je > autorizace zalozena na tzv. pravidlech a ty se posleze dotazujes ve > sve aplikaci systemem "muze uzivatel v roli A provest akci B?" atd. > Vse o pravidlech autorizace je pak vedeno na jednom miste v > konfiguracnim souboru. > > Lukas Kubasek > www.kubasek.cz > > > 2008/2/24 Ondra ®i¾ka <[EMAIL PROTECTED]>: > > Zdravim, > > hledam nejakou knihovnu pro spravu opravneni, ale na urovni > "row-level". Tim > myslim, nechci rozlisovat zabezpeceni podle tridy objektu ci > podle jeho URL. > Spise hledam knihovnu, ktera bude spravovat prava k > jednotlivym objektùm a > budu moci polozit dotaz typu "mùze uzivatel A provadet operaci > B nad > objektem C" a chci dostat true / false. Melo by to umet > skupiny, role, > dedicnost opravneni, atd. Zkratka asi jako system prav ve > Windows. uplne > idealni by bylo, kdyby k tomu byla i webova aplikace pro > samotnou spravu > uzivatelù. > > Autentizaci staci resit cimkoliv, momentalne to mam pres > JDBCRealm, takze > mam k dispozici uzivatele. Zbyva to slozitejsi, tedy vyse > popsane moznosti > autorizace. > > Vite nekdo o necem? Zatim jsem jen trochu nakouknul do Acegi, > ale zda se mi, > ze to resi spise pristup k rùznym zdrojùm. > > Diky, Ondra zizka > > PS: Omlouvam se za duplicitu, zapomnel jsem psat bez > kodovani... > > > > > Petr Ferschmann -- SoftEU s.r.o. LochotÃnská 18, 301 00 PlzeÅ, Äeská republika Phone: +420 373 731 284, +420 775 638 008 E-mail: [EMAIL PROTECTED] http://www.softeu.com/
Re: Spring HttpInvoker a dynamicke serviceUrl
asi bych tuto danou propertu nenastavoval pres Spring, ale udelal bych to vzdy v aplikacnim kodu. 2008/2/26 radovan deka <[EMAIL PROTECTED]>: > Jde jenom o to vybrat vzdaleny endpoint v runtime, aplikacni rozhrani vsech > endpointu bude zname a stejne. Predem diky za radu. > > > > Původní zpráva > > Od: Roman Pichlik <[EMAIL PROTECTED]> > > Předmět: Re: Spring HttpInvoker a dynamicke serviceUrl > > Datum: 26.2.2008 18:31:09 > > > > > > > A jakou byste obecne doporucili technologii, aby se dal co nejsnadneji > > > splnit > > pozadavek, ze vyber protejsi strany komunikace se deje az za behu aplikace. > > > Bylo by to s RMI nebo Hessianem lepsi? A nebo Web service, o kterych > zatim > > vubec nic nevim? > > > > a jde jenom o to vybrat vzdaleny endpoint v runtime a nebo bude > > kompletne nezname aplikacni rozhrani endpointu tj. nevite jestli tam > > bezi WebService, Hessian a RMI? > > > > > > > > > > > Původní zpráva > > > > Od: Roman Pichlik <[EMAIL PROTECTED]> > > > > Předmět: Re: Spring HttpInvoker a dynamicke serviceUrl > > > > Datum: 24.2.2008 10:16:03 > > > > > > > > > > > > > > No to bude trohu problem, protoze chcete, aby se staticka konfigurace > > > > chovala dynamicky. > > > > > > > > Jake jsou moznosti: > > > > > > > > - serviceUrl nastavovat programove, az potom co je ziskana instance > > > > serverServiceHttpInvokerProxy > > > > - serviceUrl dotahovat pres PropertyPlaceholderConfigurer viz > > > > dokumentace. V takovem pripade se musi zmenit lifecycle beany a to na > > > > lazy inicializaci a nebo scope prototype, v dusledku toho ze hodnota > > > > nemusi byt znama pri inicializaci kontextu > > > > - udelat ze serviceUrl beanu s vlastni factory viz dokumentace, ktera > > > > bude v zavislosti na kontextu inicializovat jeji hodnotu. Problem se > > > > zmenou lifecycle serverServiceHttpInvokerProxy pretrva > > > > > > > > > > > > 2008/2/23 radovan deka <[EMAIL PROTECTED]>: > > > > > Ahoj, muj predesly prispevek neni tak dulezitej, zjistil sem, ze > neni > > zadnej > > > > problem to zinicializovat rucne. Velky starosti mi vsak dela, jak > udelat, > > abych > > > > URL adresu druhe aplikace mohl zadavat az za behu prvni aplikace. Ted > tu > > adresu > > > > zadavam primo v kontextu v definici beanu: > > > > > > > > > > > > > > > > class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean"> > > > > > > > > value="http://localhost:8080/server/remoting/serverService"/> > > > > > > > > value="cz.vutbr.xkarel03.remote.ServerService"/> > > > > > > > > > > > > > > > > class="org.springframework.remoting.httpinvoker.CommonsHttpInvokerRequestExecutor"/> > > > > > > > > > > > > > > > > > > > > ja bych ale potreboval, abych mohl adresu > > > > "http://localhost:8080/server/remoting/serverService"; zadat az ve > webovem > > > > formulari, pac ta aplikace by mela umet komuikovat s vice jinymi > > aplikacemi. > > > > Predem diky za pripadne info. > > > > > > > > > > > > > > > > > > > > > -- > > > > S pozdravem Roman "Dagi" Pichlik > > > > > > > > /* http://www.sweb.cz/pichlik/ Blog pro kodery */ > > > > > > > > > > > > > > > > > > > > > > > -- > > S pozdravem Roman "Dagi" Pichlik > > > > /* http://www.sweb.cz/pichlik/ Blog pro kodery */ > > > > > > > -- S pozdravem Roman "Dagi" Pichlik /* http://www.sweb.cz/pichlik/ Blog pro kodery */
Re: Spring HttpInvoker a dynamicke serviceUrl
Jde jenom o to vybrat vzdaleny endpoint v runtime, aplikacni rozhrani vsech endpointu bude zname a stejne. Predem diky za radu. > Původní zpráva > Od: Roman Pichlik <[EMAIL PROTECTED]> > Předmět: Re: Spring HttpInvoker a dynamicke serviceUrl > Datum: 26.2.2008 18:31:09 > > > A jakou byste obecne doporucili technologii, aby se dal co nejsnadneji > > splnit > pozadavek, ze vyber protejsi strany komunikace se deje az za behu aplikace. > > Bylo by to s RMI nebo Hessianem lepsi? A nebo Web service, o kterych zatim > vubec nic nevim? > > a jde jenom o to vybrat vzdaleny endpoint v runtime a nebo bude > kompletne nezname aplikacni rozhrani endpointu tj. nevite jestli tam > bezi WebService, Hessian a RMI? > > > > > > > Původní zpráva > > > Od: Roman Pichlik <[EMAIL PROTECTED]> > > > Předmět: Re: Spring HttpInvoker a dynamicke serviceUrl > > > Datum: 24.2.2008 10:16:03 > > > > > > > > > > No to bude trohu problem, protoze chcete, aby se staticka konfigurace > > > chovala dynamicky. > > > > > > Jake jsou moznosti: > > > > > > - serviceUrl nastavovat programove, az potom co je ziskana instance > > > serverServiceHttpInvokerProxy > > > - serviceUrl dotahovat pres PropertyPlaceholderConfigurer viz > > > dokumentace. V takovem pripade se musi zmenit lifecycle beany a to na > > > lazy inicializaci a nebo scope prototype, v dusledku toho ze hodnota > > > nemusi byt znama pri inicializaci kontextu > > > - udelat ze serviceUrl beanu s vlastni factory viz dokumentace, ktera > > > bude v zavislosti na kontextu inicializovat jeji hodnotu. Problem se > > > zmenou lifecycle serverServiceHttpInvokerProxy pretrva > > > > > > > > > 2008/2/23 radovan deka <[EMAIL PROTECTED]>: > > > > Ahoj, muj predesly prispevek neni tak dulezitej, zjistil sem, ze neni > zadnej > > > problem to zinicializovat rucne. Velky starosti mi vsak dela, jak udelat, > abych > > > URL adresu druhe aplikace mohl zadavat az za behu prvni aplikace. Ted tu > adresu > > > zadavam primo v kontextu v definici beanu: > > > > > > > > > > > class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean"> > > > > > > value="http://localhost:8080/server/remoting/serverService"/> > > > > > > value="cz.vutbr.xkarel03.remote.ServerService"/> > > > > > > > > > > > class="org.springframework.remoting.httpinvoker.CommonsHttpInvokerRequestExecutor"/> > > > > > > > > > > > > > > > > ja bych ale potreboval, abych mohl adresu > > > "http://localhost:8080/server/remoting/serverService"; zadat az ve webovem > > > formulari, pac ta aplikace by mela umet komuikovat s vice jinymi > aplikacemi. > > > Predem diky za pripadne info. > > > > > > > > > > > > > > > > -- > > > S pozdravem Roman "Dagi" Pichlik > > > > > > /* http://www.sweb.cz/pichlik/ Blog pro kodery */ > > > > > > > > > > > > > > > -- > S pozdravem Roman "Dagi" Pichlik > > /* http://www.sweb.cz/pichlik/ Blog pro kodery */ > > >
Re: Spring HttpInvoker a dynamicke serviceUrl
> A jakou byste obecne doporucili technologii, aby se dal co nejsnadneji splnit > pozadavek, ze vyber protejsi strany komunikace se deje az za behu aplikace. > Bylo by to s RMI nebo Hessianem lepsi? A nebo Web service, o kterych zatim > vubec nic nevim? a jde jenom o to vybrat vzdaleny endpoint v runtime a nebo bude kompletne nezname aplikacni rozhrani endpointu tj. nevite jestli tam bezi WebService, Hessian a RMI? > > > Původní zpráva > > Od: Roman Pichlik <[EMAIL PROTECTED]> > > Předmět: Re: Spring HttpInvoker a dynamicke serviceUrl > > Datum: 24.2.2008 10:16:03 > > > > > > No to bude trohu problem, protoze chcete, aby se staticka konfigurace > > chovala dynamicky. > > > > Jake jsou moznosti: > > > > - serviceUrl nastavovat programove, az potom co je ziskana instance > > serverServiceHttpInvokerProxy > > - serviceUrl dotahovat pres PropertyPlaceholderConfigurer viz > > dokumentace. V takovem pripade se musi zmenit lifecycle beany a to na > > lazy inicializaci a nebo scope prototype, v dusledku toho ze hodnota > > nemusi byt znama pri inicializaci kontextu > > - udelat ze serviceUrl beanu s vlastni factory viz dokumentace, ktera > > bude v zavislosti na kontextu inicializovat jeji hodnotu. Problem se > > zmenou lifecycle serverServiceHttpInvokerProxy pretrva > > > > > > 2008/2/23 radovan deka <[EMAIL PROTECTED]>: > > > Ahoj, muj predesly prispevek neni tak dulezitej, zjistil sem, ze neni > zadnej > > problem to zinicializovat rucne. Velky starosti mi vsak dela, jak udelat, > abych > > URL adresu druhe aplikace mohl zadavat az za behu prvni aplikace. Ted tu > adresu > > zadavam primo v kontextu v definici beanu: > > > > > > > > class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean"> > > > > value="http://localhost:8080/server/remoting/serverService"/> > > > > value="cz.vutbr.xkarel03.remote.ServerService"/> > > > > > > > > class="org.springframework.remoting.httpinvoker.CommonsHttpInvokerRequestExecutor"/> > > > > > > > > > > > > ja bych ale potreboval, abych mohl adresu > > "http://localhost:8080/server/remoting/serverService"; zadat az ve webovem > > formulari, pac ta aplikace by mela umet komuikovat s vice jinymi > aplikacemi. > > Predem diky za pripadne info. > > > > > > > > > > > -- > > S pozdravem Roman "Dagi" Pichlik > > > > /* http://www.sweb.cz/pichlik/ Blog pro kodery */ > > > > > > > -- S pozdravem Roman "Dagi" Pichlik /* http://www.sweb.cz/pichlik/ Blog pro kodery */
Re: persistence
Ahoj, >Mám dvě tabulky Máš objekt "klient" a objekt "adresa". Nejprve je objekt pak teprve SQL tabulka. SQL tabulka je něco co je na pozadí a v optimálním případě se o to vůbec nestaráš. Z hlediska výkonu se sice provádí SQL modifikace ale to je věc jiná - pro začátek je lepší zůstat na úrovni objektů a jen dohlížet že v SQL vzniká co má. >@Entity >public class Klienti implements Serializable { Objektem (entitou) je pro Tebe "klient", nikoliv "klienti". Pokud to moc vadí tak SQL tabulku si můžeš přejmenovat anotací @Table na množné číslo aby se SQL tabulka jmenovala "klienti". K tomu získání klíče nově vloženého klienta: existují dvě možnosti na uložení entity (klient) do úložiště přes entity manager. entityManager.persist(klient) a entityManager.merge(klient) Ta druhá metoda (merge) vrací změněný objekt a tam máš vyplněn toužebně očekávaný ID. Nicméně u TopLinku pokud mně paměť neklame to v tomto případě nepotřebuješ. Zkus schematicky toto: Klient klient = new Klient(); klient.nazev = "Walt Disney"; List kolekce = new ArrayList(); { Adresa a = new Adresa(); a.setKlient(klient); // !!! a.setJmeno("Mickey Mouse"); kolekce.add(a); } { Adresa a = new Adresa(); a.setKlient(klient); // !!! a.setJmeno("Kacer Donald"); kolekce.add(a); } klient.setAdresy(kolekce); Klient zalozenyKlient = em.merge(klient); Všimni si, ze vůbec nevolám adresa.persist() - to dělá samotné JPA - požádal jsi o uložení _entity_ Klient a ta má v kompozici objekty Adresa (a je povolen CASCADE). Zkus to. Leoš
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: persistence
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. > > > >
Re: Java Messaging - ActiveMQ
> Jenze kdyz sem si hral s JMS naposledy, tak to fungovalo pekne dokud: > sem si mohl bindovat na producerovi jaky chci port a posilat cokoliv > kamkoliv - Je pravda ze ActiveMQ resi omezeni site tak, ze protuneluje > data jako http (REST)? Funguje to transparentne? > Co se stane se zpravou, kdyz zednik otoci antenou - bude se posilani > zpravy opakovat po nejakych intervalech (jako napr. smtp)? Podle toho co vim, kdyz jsme to delali a chteli jsme pouzit jako konektor protokol HTTP. V ramci ActiveMQ jsou dva servlety, ktere se umi pripojit do queue a pokusit se z ni precist zpravu a tu poslat jako odpoved na HTTP pozadavek. Pro bez je vyzadovano Jetty protoze pouzivaji Continuations. Pokud mate vse spravne nastveno, pak se zpravy ukladaji transakcne do db, takze ke ztrate nemuze dojit .. Do jedne fronty muze zapisovat vice produceru, takze klidne muzete mit jednu instanci ActiveMQ a na ni jedno frontu pro ruzne typy zprav, nebo 2 fronty pro ruzne druhy zprav, to je asi na vas .. Jira PS. nejaka autentizace pro pripojeni k ActiveMQ se jiste take resit da, protoze jinak by to bylo reseni naprd. -- Jiří Mareš (mailto:[EMAIL PROTECTED]) ČSAD SVT Praha, s.r.o. (http://www.svt.cz) Czech Republic
Java Messaging - ActiveMQ
Hej ho, potrebuju si ujasnit par veci ohledne JMS a posilani dat. Mam rekneme 3 ruzne ucetni systemi a centralni system. Na tech 3 systemech vystavujou faktury a centralni ma jejich zkracenku evidovat jako zaznam (platce, prijemce, castka). Ty 3 systemy jsou produkty 3tich stran. Nejakym zpusobem se budu snazit cist back-end db (planuju v jetty spusti quartz job ktery pres iBatis namapuje entitu faktura zaserializuju do xml s nejaky prikazem tj. asi neco jako ...). Mno a ted jak vyresit bezpecny presun na centralni server. Takze JMS klient producer v jetty na ucetnim s a na centralnim s broker a consumer. To chapu - na strankach ActiveMQ je prikladu dost. Jenze kdyz sem si hral s JMS naposledy, tak to fungovalo pekne dokud: sem si mohl bindovat na producerovi jaky chci port a posilat cokoliv kamkoliv - Je pravda ze ActiveMQ resi omezeni site tak, ze protuneluje data jako http (REST)? Funguje to transparentne? Co se stane se zpravou, kdyz zednik otoci antenou - bude se posilani zpravy opakovat po nejakych intervalech (jako napr. smtp)? Neznate nejaky tutorial, kde by tento pripad tj. zpravy ze sveta na jeden server i s resenim Dead letter? Spis hledam jak to udelat spravne. Zkousel jsem googlit, ale bud se dostanu na obecny popis JMS, nebo jak kde co nastavit jak JMS klienta nebo na nejake reseni (replikace DB atp.) ktere neni to co potrebuju. Narazil jsem na Enterprise Integration Patterns - ma cenu se zabyvat Camel? Kdyz ma ty 3 systemy a dva typy zpravy, je dobre si udelat pro kazdy zvlast frontu (napr. UK_A.paragomy, UK_A.faktury, UK_SC.paragomy, UK_SC.faktury, CZ.paragomy, CZ.faktury) nebo jednu a resit to na urovni zpravy? Nebo kecam voloviny a dela se to jinak? Dekuji za Vas cas, KT
Re: Image do DB
Jeste muzete udelat nahravani do/z blobu tak, ze data ulozite do temp souboru. Jen musite zaridit jeho mazani. Lukas Filip Jirsák wrote: ZdravÃm, pokud ty obrázky nejsou moc velké, uložte je do ByteArrayOutputStream, a z nÄj si pak vytáhnÄte metodou toByteArray() pole bajtů, které buÄ uložÃte do DB pÅÃmo, nebo jej obalÃte ByteArrayInputStreamem. Pokud byste ukládal vÄtÅ¡Ã obrázky, zvÄtÅ¡te JVM velikost pamÄti, kterou může použÃvat, s pÅÃpadným nedostatkem RAM by se mÄl vypoÅádat systémový swap. Teprve kdyby to byly opravdu velké obrázky, musle byste to ÅeÅ¡it nÄjakým ukládánÃm po Äástech, ale na to byste asi nepoužÃval DerbyDB⦠Filip Jirsák 26.2.08, [EMAIL PROTECTED] <[EMAIL PROTECTED]>: Ahoj, mám dotaz. Mám Image img a potÅebuju ho uložit v Derby DB. VÅ¡echny návody na netu pro ukládánà obrázků do DB jsou pÅes FileInputStream. Bohužel mÄ už pÅÃjde pÅÃmo Image img a potÅeboval bych ho uložit do DB. ZkouÅ¡el jsem cestu pÅes BLOB jenže se mÄ nepodaÅilo pÅevést Image na InputStream.
Re: Image do DB
ZdravÃm, pokud ty obrázky nejsou moc velké, uložte je do ByteArrayOutputStream, a z nÄj si pak vytáhnÄte metodou toByteArray() pole bajtů, které buÄ uložÃte do DB pÅÃmo, nebo jej obalÃte ByteArrayInputStreamem. Pokud byste ukládal vÄtÅ¡Ã obrázky, zvÄtÅ¡te JVM velikost pamÄti, kterou může použÃvat, s pÅÃpadným nedostatkem RAM by se mÄl vypoÅádat systémový swap. Teprve kdyby to byly opravdu velké obrázky, musle byste to ÅeÅ¡it nÄjakým ukládánÃm po Äástech, ale na to byste asi nepoužÃval DerbyDB⦠Filip Jirsák 26.2.08, [EMAIL PROTECTED] <[EMAIL PROTECTED]>: > Ahoj, > mám dotaz. Mám Image img a potÅebuju ho uložit v Derby DB. > VÅ¡echny návody na netu pro ukládánà obrázků do DB jsou pÅes FileInputStream. > Bohužel mÄ už pÅÃjde pÅÃmo Image img a potÅeboval bych ho uložit do DB. > ZkouÅ¡el jsem cestu pÅes BLOB jenže se mÄ nepodaÅilo pÅevést Image na > InputStream.
Re: persistence
> Asi od toho balíčku očekávám moc. Je treba zmenit mysleni a myslet v objektech. SQL ma byt uplne zastineno. > Na to jak dlouho hledám informace (asi to neumím) mi připadá, Jde o pracovni navyk - taky mne to slo blbe. Je dobre si koupit nejaky dobry a aktualni slovnik, napr. Cambridge nebo tak. Zlepsi se Vam anglictina sama a dr. Google bude Vas kamarad. > Hibernate řeši zřejmě to stejné ale funguje i pro desktop, nebo to je > vyloženě webovská záležitost? Zkuste se podivat i po iBatis - mozna vam sedne nejvice. U vsech plati (toplink,Hibernate,iBatis) ze se pouzivaji vsude ne jenom na webu. > Umí řešit i tohle ukládání v kaskádě a zjistit si aktuální hodnotu > vazebního klíče? Problem bude v tom jak to mate nakodovane viz dale. > že kdybych zůstal u starého dobrého SQL, tak to mám dávno hotové. Pro male projekty je to pravda. Sila ORM je u mnoha entit, kdy se do hry dostanou dalsi nastroje jako AOP a pak napr. transakce resite deklarativne (napr. reknete neco jako vsechny metody co zacinaji get jsou tenhle typ a vyzaduji novou transakci nebo se ucastni stavajici). Vyhozena vyjimka udela sama rollback atp. > Nakonec při veškerém úsilí to nepozná, že to má po kaskádě dělá uložit > s novým klíčem. Jeste se musite podivat po DAO a POJO: Klient je POJO - Stary cisty Java objekt, tj. nikdo si s nim na pozadi nejak nehraje. Ten by mel mit set/get pro svoje promenne a pro relaci Klient-Adresy (Taky se tomu rika Entity a ty se prevadi na Value Objekt) Klient#getJmeno():String // jmeno Klient#setJmeno(jmeno : String) // nastavi jmeno Klient#getAdresy():nejaka Kolekce // vraci adresy klienta Klient#setAdresy(:nejaka Kolekce) // objektove udelani vazby Klient#addAdresa(Adresa adresa) { klient.getAdresy().put/add(adresa); adresa.setKlient(this); } pak je tu DAO tak delate entityManager.persist delete a atp. tj. KlientiDao { void ulozKlienta(klient) { entityMamanger.persist(...) } } No a nekde ve formulari bude te mit k = new Klient(); .. a = new Adresa(); ... k.addAdresa(a); getKlientiDao().ulozKlienta(k); Trosku na hlavu ne? Ano i Ne. Kazda vrstva resi neco jineho - POJO resi jak jsou data ulozena (mozna jako DDL) a DAO resi jak se s nima naklada (DML). > Co jsem našel je , jak se nastaví relace, ale že to neumí takové triviality > jsem se nedočetl. To je alfa a omega vsech problemu s ORM - napoprve nemusi fungovat tak jak si myslime... i na podruhe, potreti...po stobilliontyprvni :-D > Takže si nejsem jistý, že se nebudu potýkat s dalšími záludnostmi černé > skřínky. > Zlatý starý dobrý SQL. No a ted si vemte, ze mate annotace, spoustu "balastu" okolo a to vse se preklada v nejaky SQL dotaz, ktery nebyva optimalni. > Proč jsem do toho šel byl jediný důvod, že si to postavilo přes binding samo > tabulku. No ale když jí předhodím list, tak si ji postaví taky. Takže mě > tohle komplikované nastavování anotacemi tedy moc neuspokojilo. > Možná na to nemám dost času a trpělivosti. Kde ORM setri praci je pripad, kdy mate cisty novy projekt a sednete ke kreslitku UML - napraskate entity ulozite a napise mvn install a ono samo to udela tabulky, entity, vo, dao, services i jednoduche dotazy typu findByRok() Udelate dalsi diagram a samo to vygeneruje webove stranky i s akcemi. Ukazete designerovy, ten doda par obrazku a klient je ready na prijeti faktury. (neverite: ->google -> andromda crud) 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.
Re: Image do DB
Ospravedlnujem sa, tato linka http://www.eggheadcafe.com/articles/20020929.asp sa netyka javy. Google mi podhodil .NET a nevsimol som si to :-) ya Ján ValkoviÄ wrote / napÃsal(a): Zdravim, nieco taketo by Vam nepomohlo? http://www.eggheadcafe.com/articles/20020929.asp http://www.roseindia.net/javatutorials/serializing_objects_into_database.shtml Mala by to byt serializacia/deserializacia objektu do databazy. ya [EMAIL PROTECTED] wrote / napÃsal(a): Ahoj, mám dotaz. Mám Image img a potÅebuju ho uložit v Derby DB. VÅ¡echny návody na netu pro ukládánà obrázků do DB jsou pÅes FileInputStream. Bohužel mÄ už pÅÃjde pÅÃmo Image img a potÅeboval bych ho uložit do DB. ZkouÅ¡el jsem cestu pÅes BLOB jenže se mÄ nepodaÅilo pÅevést Image na InputStream. KonkrétnÄ jsem zkouÅ¡el pomocà ImageIO.createImageInputStream vytvoÅit ImageInputStream a ten pak konvertovat do InputStreamu ale asi jsem dÄlal nÄco Å¡patnÄ protože Image img; InputStream inStream = (InputStream) ImageIO.createImageInputStream(img). mÄ vždycky vrátà null; nemohl by mÄ nÄkdo nasmÄrovat jak uložit Image img do DB. ZkouÅ¡el jsem i pÅes preparedStatement prepStat.setObject(3, img); ale i tak nic. PÅedem dÃky za jakoukoliv odpovÄd Petr ps.: pÅedpokládám že mÄ nedoÅ¡lo nÄco základnÃho a zkouÅ¡Ãm vymyslet kolo nebo nÄco na ten způsob
Re: Image do DB
Zdravim, nieco taketo by Vam nepomohlo? http://www.eggheadcafe.com/articles/20020929.asp http://www.roseindia.net/javatutorials/serializing_objects_into_database.shtml Mala by to byt serializacia/deserializacia objektu do databazy. ya [EMAIL PROTECTED] wrote / napÃsal(a): Ahoj, mám dotaz. Mám Image img a potÅebuju ho uložit v Derby DB. VÅ¡echny návody na netu pro ukládánà obrázků do DB jsou pÅes FileInputStream. Bohužel mÄ už pÅÃjde pÅÃmo Image img a potÅeboval bych ho uložit do DB. ZkouÅ¡el jsem cestu pÅes BLOB jenže se mÄ nepodaÅilo pÅevést Image na InputStream. KonkrétnÄ jsem zkouÅ¡el pomocà ImageIO.createImageInputStream vytvoÅit ImageInputStream a ten pak konvertovat do InputStreamu ale asi jsem dÄlal nÄco Å¡patnÄ protože Image img; InputStream inStream = (InputStream) ImageIO.createImageInputStream(img). mÄ vždycky vrátà null; nemohl by mÄ nÄkdo nasmÄrovat jak uložit Image img do DB. ZkouÅ¡el jsem i pÅes preparedStatement prepStat.setObject(3, img); ale i tak nic. PÅedem dÃky za jakoukoliv odpovÄd Petr ps.: pÅedpokládám že mÄ nedoÅ¡lo nÄco základnÃho a zkouÅ¡Ãm vymyslet kolo nebo nÄco na ten způsob
Re: persistence
Díky alespoň za to :-)! Asi od toho balíčku očekávám moc. Na to jak dlouho hledám informace (asi to neumím) mi připadá, že kdybych zůstal u starého dobrého SQL, tak to mám dávno hotové. Nakonec při veškerém úsilí to nepozná, že to má po kaskádě dělá uložit s novým klíčem. Co jsem našel je , jak se nastaví relace, ale že to neumí takové triviality jsem se nedočetl. Takže si nejsem jistý, že se nebudu potýkat s dalšími záludnostmi černé skřínky. Zlatý starý dobrý SQL. Proč jsem do toho šel byl jediný důvod, že si to postavilo přes binding samo tabulku. No ale když jí předhodím list, tak si ji postaví taky. Takže mě tohle komplikované nastavování anotacemi tedy moc neuspokojilo. Možná na to nemám dost času a trpělivosti. Jsou od toho někde zdrojáky? Hibernate řeši zřejmě to stejné ale funguje i pro desktop, nebo to je vyloženě webovská záležitost? Umí řešit i tohle ukládání v kaskádě a zjistit si aktuální hodnotu vazebního klíče? Zatím díky a příjemný den :-)! Arne > Původní zpráva > Od: Karel Tejnora <[EMAIL PROTECTED]> > Předmět: Re: persistence > Datum: 26.2.2008 00:00:21 > > Ahoj, > > > > Ovšem při pokusu založit klienta i jeho adresu zároveň nelze. > > Nepřenese se do adresy klíč klienta a insert zkončí na tom, > > že databáze zabrání vložení null hodnoty. > > toplink neznam, i kdyz brzo asi poznam, ale obecne tenhle problem je v > tom, ze se dve entity sice svazou pres cizi klic, ale porad je to > operace v pameti tj. cizi klic je null, nebot pk klienta je take null > > 'najednou' znamena ulozit klienta (tj. poslat do db ziskat jeho > synteticky/generovany klic) a pridat adresu kli.newAdresar() - ted se > zavola cosi jako adresa.setFK(klient.pk()) ale uz se znalosti pk > klienta. > > Tj. s adresou 'najednou' je to totez jako ji pridat k existujicimu > klientovi. Pak se to resi tak ze tyto dve metody vytvorKlienta a > vytvorAdresu jsou na stejne transakci. vytvorAdresu pak ma nastaveno > pokud volas a si v transakci tak ji pouzij, pokud ne zaloz novou. No a > kdyz se s adresou cosi nepovede tak se odroluje i klient (v pripade > 'najednou').
Re: Image do DB
[EMAIL PROTECTED] napsal(a): Ahoj, mám dotaz. Mám Image img a potÅebuju ho uložit v Derby DB. VÅ¡echny návody na netu pro ukládánà obrázků do DB jsou pÅes FileInputStream. Bohužel mÄ už pÅÃjde pÅÃmo Image img a potÅeboval bych ho uložit do DB. ZkouÅ¡el jsem cestu pÅes BLOB jenže se mÄ nepodaÅilo pÅevést Image na InputStream. KonkrétnÄ jsem zkouÅ¡el pomocà ImageIO.createImageInputStream vytvoÅit ImageInputStream a ten pak konvertovat do InputStreamu ale asi jsem dÄlal nÄco Å¡patnÄ protože Image img; InputStream inStream = (InputStream) ImageIO.createImageInputStream(img). mÄ vždycky vrátà null; nemohl by mÄ nÄkdo nasmÄrovat jak uložit Image img do DB. ZkouÅ¡el jsem i pÅes preparedStatement prepStat.setObject(3, img); ale i tak nic. PÅedem dÃky za jakoukoliv odpovÄd Petr ps.: pÅedpokládám že mÄ nedoÅ¡lo nÄco základnÃho a zkouÅ¡Ãm vymyslet kolo nebo nÄco na ten způsob Åekl bych, že ten Image je typu, pro který ImageIO neumà vytvoÅit ImageInputStream. Zkusil bych pomocà ImageIO.write(RenderedImage im, String formatName, File output) zapsat ten obrázek jako tÅeba PNG, a z toho File ho pak naÄÃst jako InputStream do BLOBu. Makub -- ~~ 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 -- smime.p7s Description: S/MIME Cryptographic Signature
Image do DB
Ahoj, mám dotaz. Mám Image img a potÅebuju ho uložit v Derby DB. VÅ¡echny návody na netu pro ukládánà obrázků do DB jsou pÅes FileInputStream. Bohužel mÄ už pÅÃjde pÅÃmo Image img a potÅeboval bych ho uložit do DB. ZkouÅ¡el jsem cestu pÅes BLOB jenže se mÄ nepodaÅilo pÅevést Image na InputStream. KonkrétnÄ jsem zkouÅ¡el pomocà ImageIO.createImageInputStream vytvoÅit ImageInputStream a ten pak konvertovat do InputStreamu ale asi jsem dÄlal nÄco Å¡patnÄ protože Image img; InputStream inStream = (InputStream) ImageIO.createImageInputStream(img). mÄ vždycky vrátà null; nemohl by mÄ nÄkdo nasmÄrovat jak uložit Image img do DB. ZkouÅ¡el jsem i pÅes preparedStatement prepStat.setObject(3, img); ale i tak nic. PÅedem dÃky za jakoukoliv odpovÄd Petr ps.: pÅedpokládám že mÄ nedoÅ¡lo nÄco základnÃho a zkouÅ¡Ãm vymyslet kolo nebo nÄco na ten způsob