Re: Webapp, resources a classloader
Ahoj, zjavne som sa snahou o izolovanie problemu do nejakeho jednoducheho proof-of-concept zamotal. Principialne mi ide o to, ze mam web aplikaciu, ktora pri inicializacii spring kontextu nacitava vsetky .properties subory, ktore sa nachadzaju vo WEB-INF/classes. Tieto property subory sa do toho adresara dostanu pocas buildu rozkopirovanim z roznych maven submodulov. Vid. bean id=fooPropertyPlaceholderConfigurer class=cz.company.foo.core.utils.props.fooPropertyPlaceholderConfigurer property name=locations list valueclasspath:*.properties/value /list /property Mojim cielom bolo zabalit vsetky property subory do jedneho jar-ka a to pribalit k webapp. Vzhladom na uz citovane ...plus classes and resources in JAR files under the /WEB-INF/lib directory... som ocakaval, ze spring tam tie property uvidi bez ohladu na to, ci budu vo war-e, alebo az v nim includovanom jar-e. Ale zjavne ich nevidi a ja nechapen, kde je ten rozpor. Jedine co ma prave teraz napada je, ze spring neni schopny evaluovat vyraz *.properties, pretoze v pripade, ked su vo web-inf, tak sa rozbalia priamo na filesystem do TOMCAT/web-apps/./WEB-INF, kdezto ked su v jar, tak ich proste nevidi ako subory a neni schopny ziskat ich zoznam... -- Dusan Ahoj, ja bezne vo web aplikaciach pouzivam URL url = MojaTrieda.getResource(…); a funguje to bez problemov. Vo vasom pripade by to zrejme malo byt URL url = MojaTrieda.getResource(/src/main/resources/libresource.properties); pripadne iba /libresource.properties. Preco sa snazite pouzit getSystemResource a tym padom System classloader? Podla http://tomcat.apache.org/tomcat-7.0-doc/class-loader-howto.html System classloader nemoze vidiet resources z webovych aplikacii. Pouzite bud getResource z nejakej vasej classy (ta je urcite nacitana webovym classloaderom), alebo pouzite classloader zo ServletContext.getClassLoader(). -Peter On 22.8.2012, at 17:15, Dusan Zatkovsky msk.c...@gmail.com wrote: Ahoj. Zapasim s nacitavanim resources z classpath webovej aplikacie v tomcat-e a nejak neviem prist veci na klb. Mam klasicku ( mavenom buildenu ) aplikaciu zlozenu z: - lib - command line client - webapp lib.jar obsahuje: ./src/main/resources/libresource.properties K tomuto suboru pristupujem v cli a webapp pomocou: URL url = ClassLoader.getSystemResource(libresource.properties); Properties p = new Properties(); p.load(ClassLoader.getSystemResourceAsStream(libresource.properties)); V cli aplikacii to funguje, vo webapp nie ( getSystemResource vrati null ). Tomcat v dokumentacii classloader-u pise: A class loader is created for each web application that is deployed in a single Tomcat instance. All unpacked classes and resources in the /WEB-INF/classes directory of your web application, -- plus classes and resources in JAR files under the /WEB-INF/lib directory -- of your web application, are made visible to this web application, but not to other ones. Co je presne co chcem. Ale zjavne to nefunguje tak ako ocakavam. Vygooglil som, ze riesenim je skopirovat ten property file pocas buildu priamo do webapp/target/WEB-INF/classes, co samozrejme nechcem, pretoze to ide presne proti cielu mojho snazenia ( odstranit z projektu nadbytocne rozkopirovavanie ). V com robim chybu? Diky -- Dusan
Re: Webapp, resources a classloader
Ahoj, toto mi ale bohuzial zafunguje len pre exaktne vymenovane subory: valueclasspath*:jdbc.properties/value valueclasspath*:another.properties/value valueclasspath*:foo.properties/value a nie pre wildcard: valueclasspath*:*.properties/value -- Dusan Ahoj, pouzij classpath*: aby spring videl i do JAR souboru. marek
Re: Webapp, resources a classloader
Tak toto je vcelku slusna sprostarna, diky za tip! Property som supol do podadresara a vsetko zda sa funguje ako ma. Dakujem. -- Dusan Pozor na jeden velky zadrhel s classpath*: ak su properties v koreni JARu, nemusi to fungovat, vid upozornenie v dokumentacii Springu. Je tam nejaky problem s classloadermi, kde hviezdicka v roote nefunguje pre JARy. http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/resources.html#resources-wildcards-in-path-other-stuff Riesenie je davat konfiguraky do META-INF: myepicproject-configs.jar |- META-INF |- applicationContext.xml a vyraz potom moze byt |classpath*:META-INF/*.xml| On 23. 8. 2012 9:59, Dusan Zatkovsky wrote: Ahoj, zjavne som sa snahou o izolovanie problemu do nejakeho jednoducheho proof-of-concept zamotal. Principialne mi ide o to, ze mam web aplikaciu, ktora pri inicializacii spring kontextu nacitava vsetky .properties subory, ktore sa nachadzaju vo WEB-INF/classes. Tieto property subory sa do toho adresara dostanu pocas buildu rozkopirovanim z roznych maven submodulov. Vid. bean id=fooPropertyPlaceholderConfigurer class=cz.company.foo.core.utils.props.fooPropertyPlaceholderConfigurer property name=locations list valueclasspath:*.properties/value /list /property Mojim cielom bolo zabalit vsetky property subory do jedneho jar-ka a to pribalit k webapp. Vzhladom na uz citovane ...plus classes and resources in JAR files under the /WEB-INF/lib directory... som ocakaval, ze spring tam tie property uvidi bez ohladu na to, ci budu vo war-e, alebo az v nim includovanom jar-e. Ale zjavne ich nevidi a ja nechapen, kde je ten rozpor. Jedine co ma prave teraz napada je, ze spring neni schopny evaluovat vyraz *.properties, pretoze v pripade, ked su vo web-inf, tak sa rozbalia priamo na filesystem do TOMCAT/web-apps/./WEB-INF, kdezto ked su v jar, tak ich proste nevidi ako subory a neni schopny ziskat ich zoznam... -- Dusan Ahoj, ja bezne vo web aplikaciach pouzivam URL url = MojaTrieda.getResource(…); a funguje to bez problemov. Vo vasom pripade by to zrejme malo byt URL url = MojaTrieda.getResource(/src/main/resources/libresource.properties); pripadne iba /libresource.properties. Preco sa snazite pouzit getSystemResource a tym padom System classloader? Podla http://tomcat.apache.org/tomcat-7.0-doc/class-loader-howto.html System classloader nemoze vidiet resources z webovych aplikacii. Pouzite bud getResource z nejakej vasej classy (ta je urcite nacitana webovym classloaderom), alebo pouzite classloader zo ServletContext.getClassLoader(). -Peter On 22.8.2012, at 17:15, Dusan Zatkovsky msk.c...@gmail.com wrote: Ahoj. Zapasim s nacitavanim resources z classpath webovej aplikacie v tomcat-e a nejak neviem prist veci na klb. Mam klasicku ( mavenom buildenu ) aplikaciu zlozenu z: - lib - command line client - webapp lib.jar obsahuje: ./src/main/resources/libresource.properties K tomuto suboru pristupujem v cli a webapp pomocou: URL url = ClassLoader.getSystemResource(libresource.properties); Properties p = new Properties(); p.load(ClassLoader.getSystemResourceAsStream(libresource.properties)); V cli aplikacii to funguje, vo webapp nie ( getSystemResource vrati null ). Tomcat v dokumentacii classloader-u pise: A class loader is created for each web application that is deployed in a single Tomcat instance. All unpacked classes and resources in the /WEB-INF/classes directory of your web application, -- plus classes and resources in JAR files under the /WEB-INF/lib directory -- of your web application, are made visible to this web application, but not to other ones. Co je presne co chcem. Ale zjavne to nefunguje tak ako ocakavam. Vygooglil som, ze riesenim je skopirovat ten property file pocas buildu priamo do webapp/target/WEB-INF/classes, co samozrejme nechcem, pretoze to ide presne proti cielu mojho snazenia ( odstranit z projektu nadbytocne rozkopirovavanie ). V com robim chybu? Diky -- Dusan
Webapp, resources a classloader
Ahoj. Zapasim s nacitavanim resources z classpath webovej aplikacie v tomcat-e a nejak neviem prist veci na klb. Mam klasicku ( mavenom buildenu ) aplikaciu zlozenu z: - lib - command line client - webapp lib.jar obsahuje: ./src/main/resources/libresource.properties K tomuto suboru pristupujem v cli a webapp pomocou: URL url = ClassLoader.getSystemResource(libresource.properties); Properties p = new Properties(); p.load(ClassLoader.getSystemResourceAsStream(libresource.properties)); V cli aplikacii to funguje, vo webapp nie ( getSystemResource vrati null ). Tomcat v dokumentacii classloader-u pise: A class loader is created for each web application that is deployed in a single Tomcat instance. All unpacked classes and resources in the /WEB-INF/classes directory of your web application, -- plus classes and resources in JAR files under the /WEB-INF/lib directory -- of your web application, are made visible to this web application, but not to other ones. Co je presne co chcem. Ale zjavne to nefunguje tak ako ocakavam. Vygooglil som, ze riesenim je skopirovat ten property file pocas buildu priamo do webapp/target/WEB-INF/classes, co samozrejme nechcem, pretoze to ide presne proti cielu mojho snazenia ( odstranit z projektu nadbytocne rozkopirovavanie ). V com robim chybu? Diky -- Dusan
hibernate - recyklacia komponentneho primary key
Ahoj. Laborujem trosku s Hibernate a $SUBJ. V principe mi ide o toto: Mam niekolko tabuliek, ktorych primarnym klucom su vzdy 2 stlpce ( int, int ) a tymito integermi su prepojene. K tomu som si vyrobil ekvivalent pre hibernate: @Embeddable public class IntIntPKey implements Serializable { private int mediaId; private int fileId; ... } Moja otazka znie, ci mozem tuto class-u pouzivat ako id pre vsetky tabule, alebo musim pre kazdu tabulu vyrobit novu. Priklad: @Entity @Table(name = E1) public class E1 implements Serializable { @EmbeddedId protected IntIntPKey id; ... } @Entity @Table(name = E2) public class E2 implements Serializable { @EmbeddedId protected IntIntPKey id; ... } @Entity @Table(name = E3) public class E3 implements Serializable { @EmbeddedId protected IntIntPKey id; ... } ... a tak dalej ... Predpokladam, ze by to nemusel byt problem.. Diky -- Dusan ... tykajte mi
hibernate - nezmyselny update
Ahoj. Sorry ze zase otravujem, ale toto mi vrta v hlave: EntityManagerFactory fact = Persistence.createEntityManagerFactory(testPU); EntityManager m = fact.createEntityManager(); m.getTransaction().begin(); E e1 = new E(); e1.setA(a); e1.setB(b); e1.setC(c); e1.setD(d); m.persist(e1); m.getTransaction().commit(); //:: vola insert into E (id, a, b, c, d) values (null, ?, ?, ?, ?) m.getTransaction().begin(); e1.setB(2); //m.merge(e1); m.getTransaction().commit(); //:: vola update E set a=?, b=?, c=?, d=? where id=? m.close(); Ten update je kravina, preco nevola jednoducho update E set b=? where id=? Zle som niekde nieco nastavil? Diky -- Dusan ... tykajte mi
Re: hibernate - nezmyselny update
Diky moc pani. BTW Nasiel som este pripadne nastavenie anotaciou: @org.hibernate.annotations.Entity(dynamicInsert=true,dynamicUpdate=true) -- Dusan ... tykajte mi
Parsovanie .java zdrojakov cestou najmensieho odporu
Ahoj. Maintainujem qtjambi/maven plugin a stojim pred rozhodnutim ci/a/alebo cim parsovat javovske zdrojaky. V principe mi ide o extrakciu textov k prekladu ( pokial niekto pouziva qt/qtjambi, ide mi o nahradu toolu lupdate ). Priklad: public class MainClass extends SomeObject { public void someMethod() { String s1 = tr(string1); String s2 = QApplication.translate(MyContext, string2); String s3 = QCoreApplication.translate(MyContext, string3, 5); //String s4 = QApplication.translate(MyContext, string4, 5); String s5 = QApplication.translate( MyContext, string5, 7); /* String s6 = tr(commented); */ } class InnerClass { void anotherMethod() { String s6 = tr(string6); } } } Z tohoto zdrojaku potrebujem vyextrahovat parameter pre tr() a prve dva parametre pre QApplication.translate() a QCoreApplication.translate(). Dalej v pripade tr() potrebujem vediet meno class-y ( MainClass ), pripadne aj rodicovskej classy (MainClass.InnerClass). Samozrejme k tomu spravne handlovat zakomentovane casti kodu a viacriadkove statementy. Vysledkom tohoto extraktu by bolo cosi podobne tomuto: MainClass,string1 MyContext,string2 MyContext,string3 MyContext,string5 MainClass.InnerClass,string6 Mam niekolko moznosti: - regexp ( primitivne, nezistim meno classy ) - nejaky vlastny tokenizer ( dlhsi cas vyvoja ) - zneuzit cosi existujuce ... ? Ako by ste na to sli vy? Dik -- Dusan ... tykajte mi
Re: Parsovanie .java zdrojakov cestou najmensieho odporu
On Wednesday 14 of April 2010 13:04:42 Petr Prochazka wrote: Na to asm sa pozriem, vychadzal som z predpokladu, ze za tak masivnou podporou refactoringu a kontrole syntaxe v IDE-ckach je cosi, co by mozno slo pouzit... D -- Dusan ... tykajte mi
Re: Parsovanie .java zdrojakov cestou najmensieho odporu
On Wednesday 14 of April 2010 14:46:50 Dusan Zatkovsky wrote: Bingo! Musim uznat, ze som sa tomu venoval tak 15 minut a mam to s javaparser skoro hotove! Diky diky. Keby to niekoho zaujimalo, moze sa inspirovat: File src = new File(src/main/java/test/App.java); CompilationUnit u = JavaParser.parse(src); new MethodVisitor().visit(u, null); // toto sa bude prekladat tr(tr string 1); this.tr(tr string 2); QApplication.translate(context1, text1); QApplication.translate(context2, text2, 3); // toto sa nebude prekladat // QApplication.translate(context3, text3, 3); // toto sa tiez nebude prekladat /* test QApplication.translate(context4, text4, 3); * */ private static class MethodVisitor extends VoidVisitorAdapter { private String className; public void visit(ClassOrInterfaceDeclaration n, Object arg) { this.className = n.getName(); super.visit(n, arg); } public void visit(MethodCallExpr n, Object arg) { String name = n.getName(); Expression scope = n.getScope(); List args = n.getArgs(); if (name.equals(tr)) { if (args.size() == 1) { Translator.translate( className, args.get(0).toString()); } } else if (name.equals(translate) scope != null scope.toString().equals(QApplication)) { if (args.size() == 2) { Translator.translate(args.get(0).toString(), args.get(1).toString()); } else if (args.size() == 3) { System.out.println(args.get(2)); Translator.translate(args.get(0).toString(), args.get(1).toString(), new Integer(args.get(2).toString()).intValue()); } } super.visit(n, arg); } } ... ake jednoduche ! -- Dusan ... tykajte mi
Re: problem s S/MIME
On Wednesday 31 of March 2010 14:26:24 Vítězslav Košina wrote: Riesenim je nemixovat BC a SunMSCAPI dohromady, takze: to_sign.setContent(mp); MimeMultipart signed = sign_gen.generate(to_sign, SunMSCAPI ); sendMultipart(subject, signed); -- Dusan ... tykajte mi
Vyber web frameworku ( following Eclipse RAP )
Ahoj. Ako clovek web aplikaciami takmer nedotknuty stojim pred problemom vyberu spravnej technologie. * kratka verzia: Hladam GWT-like framework co vie generovat ako javascript tak ciste html stranky. * dlhsia verzia: Momentalne som v stave, ze tusim cosi o jsp, jsf, gwt a ajax-e obecne. Mam za sebou participaciu na jednom malom jsf projekte. Hladam framework(y), nad ktorym by som bol co najmenej bolestne schopny: a. stavat jednoduche webove aplikacie ( napr. primitivny next-next wizard so zadavanim hodnot do policok ) b. ... ale mozno aj zlozitejsie veci ( typu gmail a spol ) V principe mi ide o to vyhnut sa sposobu vyvoja prasenim javy do html ( jsp, jsf ) a priblizit to vyvoju desktop aplikacii ( panely, layoyty, tlacitka, tabulky ), ale s moznostou generovat aj ciste html ( logicky len podmnozinu featur ). Nemusi to byt all in one riesenie, moze ist o viac frameworkov ( jeden na html, druhy na js ). Diky. -- Dusan ... tykajte mi
Re: Vyber web frameworku ( following Eclipse RAP )
On Monday 29 of March 2010 13:27:03 Martin Beránek wrote: poradit ti neumim, ale nazvat JSF prasenim javy do html je imho uplne mimo. Je to komponentovy framework a zadny mix ala skriplety se tu nekona. To aspon dokazuje, ze sa vo webe vobec neorientujem. Participoval som na projekte, kde sa pouzivalo jsf v html strankach zabalenych v .jsp suboroch, prelievali sa tam data z textovych kolonok do nejakych managed-bean a skakalo sa medzi strankami pomocou String navratovych hodnot. -- Dusan ... tykajte mi
Re: Vyber web frameworku ( following Eclipse RAP )
On Monday 29 of March 2010 13:31:01 Ondra Medek wrote: Ahoj, zkus GWT + Vaadin. Zkusenost s tim nemam, jen po tom zatim posilhavam. Letmym pohladom sa mi to velmi paci. nevim, jestli ti to pomuze v generovani toho cisteho HTML. Vyzera ze nie. Otazne je, ci sa na poziadavku A. nevykaslat a nerobit aj jednoduche formulare ako javascript ( aj ked mi to smrdi, ako uzivatel browsera konqueror z kde 3.5.10 som rad ked javascript nevidim, pretoze tam moc nefunguje :) ). -- Dusan ... tykajte mi
Netbeans, maven, webservice klient
Ahoj. Zapasim s problemom, na ktory mam ne_elegantne riesenie, ale zaujimalo by ma to elegantne. Vytvorim v NB maven projekt, pridam webservice client. Zvolim wsdl from url a zadam http://cosi/kdesi. WSDL sa stiahne, nageneruje sa potrebny kod. Problem je, ze v tom kode je uvedene: @WebServiceClient(name = GetAppVersionInfoService, targetNamespace \ = http://appversionws.firma.cz/;, wsdlLocation \ = file:/C:/work/firma.cz/projekt/src/wsdl/update.firma.cz/appVersionWS/GetAppVersionInfoService.wsdl) ... co je uplna blbost, pretoze som mu jasne uviedol, ze to wsdl je na url a nie na disku. Potom sa clovek dostane do probemov, ze v netbeans projekt chodi, ale standalone nie, pretoze nenajde wsdl. Momentalne to riesim tak, ze pouzivam konstruktor ( URL, QName ) pre danu sluzbu, ale je to strasne primitivne a dost ma irituje fakt, ze musim rucne prechadzat vygenerovany kod a hladat v nom konstrukciu QName. Nejaky napad? -- Dusan
Re: Netbeans, maven, webservice klient
On Tuesday 02 of March 2010 15:44:03 Dusan Zatkovsky wrote: Este som vypozoroval, ze toto je vlastnost _maven_ projektov v netbeans, u ant-based projektov je v .java uvedene spravne url. Je to na bugreport, alebo robim nieco uplne blbo? -- Dusan ... tykajte mi
Re: Netbeans, maven, webservice klient
On Tuesday 02 of March 2010 15:44:26 Martin Kuba wrote: Pozrel som sa na to detailnejsie a nasiel som riesenie. Sice som nepouzil apache-cosi, ale len upravil jax-ws stuff vygenerovany z netbeans. Takze: configuration wsdlFiles wsdlFilesome.package.name/blablabla/some.wsdl/wsdlFile /wsdlFiles ... /configuration zmenit na configuration wsdlUrls wsdlUrlhttp:///wsdlUrl /wsdlUrls Problem je, ze netbeans prestanu danu sluzbu vidiet. Nahlasil som bug. Diky -- Dusan ... tykajte mi
Re: netbeans ignoruje faces-config.xml
On Tuesday 23 of February 2010 18:01:48 Zdenek Tronicek wrote: Jinak to, ze Ti funguje navigace muze byt zpusobeno implicitni navigaci. Tomuto nerozumiem. Takze mam niekde nieco nastavit? BTW skusal som to teraz v NB 6.8 na winxp, rovnaky problem. -- Dusan ... tykajte mi
netbeans ignoruje faces-config.xml
Ahoj. Snazim sa zabrdnut do tajov jsf. V netbeans som si vytvoril web projekt, vyrobil 2 managed beany, 2 xhtml stranky. Postupoval som podobne, ako v tomto tutoriali: http://www.developinjava.com/features/47-enterprise-java/110-introduction-to-jsf-2-using-netbeans-and-glassfish.html V projekte som dal vytvorit novy faces-config.xml, ale netbeans sa k nemu sprava ako ku klasickemu xml. Nefunguje inteligentne doplnanie, nemam vizualny pohlad nad flow, doplnanie kodu a tak podobne. Pokial do toho xml rucne napisem: navigation-rule from-view-id/index.xhtml/from-view-id navigation-case from-outcomewelcome/from-outcome to-view-id/welcome.xhtml/to-view-id /navigation-case /navigation-rule tak projekt funguje spravne a dojde k presunu z index.xhtml na welcome.xhtml. Ja by som ale na zaciatok, kym sa s tym ucim, fakt ocenil, aby mi netbeans trosku pomohol. Robim nieco blbo? Skusal som ako ant tak maven web projekt, oba rovnaky vysledok. Este dodam, ze pokial otvorim hotovy kolegov projekt, faces-config je rozpoznane a ma inu ikonu. Ked ten isty subor skopirujem do mojho projektu, je to ciste xml. Netbeans 6.8, Debian Linux, Sun JDK, JSF 2.0 Dik -- Dusan
Glassfish - alternate document root
Ahoj. Zapasim so servovanim suborov pomocou glassfish3. Mam webovy projekt: sun-web-app error-url= context-root/Test/context-root class-loader delegate=true/ jsp-config property name=keepgenerated value=true descriptionKeep a copy of the generated servlet class' java code./description /property /jsp-config property name=alternatedocroot_1 value=from=/images/* dir=/tmp/test1/ /sun-web-app ls -la /tmp/test1/ total 5 drwxr-xr-x 2 msk msk 80 2010-02-22 11:08 . drwxrwxrwt 16 root root 760 2010-02-22 11:15 .. -rw-r--r-- 1 msk msk5 2010-02-22 11:03 file1.txt Ocakaval by som, ze na url http://glassfish/Test/images/file1.txt server vrati dany subor, ale nejak sa mu nechce a dava mi 404. Kde robim chybu? Dik -- Dusan ... tykajte mi
Re: Glassfish - alternate document root
On Monday 22 of February 2010 11:20:29 Dusan Zatkovsky wrote: property name=alternatedocroot_1 value=from=/images/* dir=/tmp/test1/ /sun-web-app Zaujimave je, ze: property name=alternatedocroot_1 value=from=*.txt dir=/tmp/test1/ funguje na url http://glassfish/Test/file1.txt -- Dusan ... tykajte mi
GlassFish + postgres - @SequenceGenerator sa nevytvori
Ahoj. Laborujem s postgres + glassfish a persistenciou. Tabulky si zatial nechavam generovat persistentnou vrstvou. Moj problem je, ze sa nevytvara sequence, napriek tomu, ze som to anotoval. Utrzky kodu a konfiguracie: @Entity public class ClientRequest implements Serializable { private static final long serialVersionUID = 1L; @Id @SequenceGenerator(name = MYSEQUENCE, sequenceName = mysequence) @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = MYSEQUENCE) @Column(name = id, nullable = false) private Long id; persistence-unit name=appVersionPU transaction-type=JTA provideroracle.toplink.essentials.PersistenceProvider/provider jta-data-sourcejdbc/test/jta-data-source exclude-unlisted-classesfalse/exclude-unlisted-classes properties property name=toplink.logging.level value=FINER/ property name=toplink.target-database value=PostgreSQL/ property name=toplink.ddl-generation value=create-tables/ /properties /persistence-unit Log z aplikacneho servera: ... connecting(DatabaseLogin( ... CREATE TABLE CLIENTREQUEST (id SERIAL NOT NULL, CUSTOMERCOMPANY VARCHAR(255), CUSTOMERSERIAL VARCHAR(255), CUSTOMERNAME VARCHAR(255), APPNAME VARCHAR(255), CLIENTIP VARCHAR(255), PRIMARY KEY (id)) ... INSERT INTO CLIENTREQUEST (CUSTOMERCOMPANY, CUSTOMERSERIAL, CUSTOMERNAME, APPNAME, CLIENTIP) VALUES (?, ?, ?, ?, ?) ...select currval('mysequence') Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0 (Build 36 (02/17/2007))): oracle.toplink.essentials.exceptions.DatabaseException Internal Exception: org.postgresql.util.PSQLException: ERROR: relation mysequence does not existError Code: 0 Call:select currval('mysequence') Query:ValueReadQuery() Moja otazka znie, preco ta sekvencia nebola vytvorena. Tusi niekto? Diky -- Dusan ... tykajte mi
Re: GlassFish + postgres - @SequenceGenerator sa nevytvori
Ahoj. Skutocne, zafungovalo jedine @SequenceGenerator(name = MYSEQUENCE, sequenceName = clientrequest_id_seq) public class ClientRequest implements Serializable { @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = MYSEQUENCE) Hibernate na glassfish som sa chcel povodne vyhnut ( som lenivy rucne kopirovat jar-y na vsetky stroje kde to budem pouzivat ), ale asi sa prekonam. Diky Zdravím, podobný problém jsme řešili s glassfishem již před několika lety. Glassfish neuměl vytvořit a používat námi pojmenovanou sequenci. Automaticky vytvářel sequence ve tvaru nazev_tabulky_id_seq Dokonce jsem na to psal i dotaz přímo do glassfish. http://forums.java.net/jive/thread.jspa?messageID=211876#211876 V každém případě jiná implementace JPA funguje dle očekávání (např. hibernate). Fafi On Fri, Feb 19, 2010 at 2:32 PM, Dusan Zatkovsky msk.c...@gmail.com wrote: Ahoj. Laborujem s postgres + glassfish a persistenciou. Tabulky si zatial nechavam generovat persistentnou vrstvou. Moj problem je, ze sa nevytvara sequence, napriek tomu, ze som to anotoval. Utrzky kodu a konfiguracie: @Entity public class ClientRequest implements Serializable { private static final long serialVersionUID = 1L; �...@id �...@sequencegenerator(name = MYSEQUENCE, sequenceName = mysequence) �...@generatedvalue(strategy = GenerationType.SEQUENCE, generator = MYSEQUENCE) �...@column(name = id, nullable = false) private Long id; persistence-unit name=appVersionPU transaction-type=JTA provideroracle.toplink.essentials.PersistenceProvider/provider jta-data-sourcejdbc/test/jta-data-source exclude-unlisted-classesfalse/exclude-unlisted-classes properties property name=toplink.logging.level value=FINER/ property name=toplink.target-database value=PostgreSQL/ property name=toplink.ddl-generation value=create-tables/ /properties /persistence-unit Log z aplikacneho servera: ... connecting(DatabaseLogin( ... CREATE TABLE CLIENTREQUEST (id SERIAL NOT NULL, CUSTOMERCOMPANY VARCHAR(255), CUSTOMERSERIAL VARCHAR(255), CUSTOMERNAME VARCHAR(255), APPNAME VARCHAR(255), CLIENTIP VARCHAR(255), PRIMARY KEY (id)) ... INSERT INTO CLIENTREQUEST (CUSTOMERCOMPANY, CUSTOMERSERIAL, CUSTOMERNAME, APPNAME, CLIENTIP) VALUES (?, ?, ?, ?, ?) ...select currval('mysequence') Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0 (Build 36 (02/17/2007))): oracle.toplink.essentials.exceptions.DatabaseException Internal Exception: org.postgresql.util.PSQLException: ERROR: relation mysequence does not existError Code: 0 Call:select currval('mysequence') Query:ValueReadQuery() Moja otazka znie, preco ta sekvencia nebola vytvorena. Tusi niekto? Diky -- Dusan ... tykajte mi -- Dusan ... tykajte mi
Re: GlassFish + postgres - @SequenceGenerator sa nevytvori
On Friday 19 of February 2010 15:25:16 Dusan Zatkovsky wrote: Aha! On sa hibernate do glassfish 3 uz instaluje cez UpdateTool, super ... Hibernate na glassfish som sa chcel povodne vyhnut ( som lenivy rucne kopirovat jar-y na vsetky stroje kde to budem pouzivat ), ale asi sa prekonam. -- Dusan ... tykajte mi
Re: spring-jdbc a transakcie
otevrenou transakci dejme tomu pro cely zivotni cyklus nejakeho dialogu - od otevreni a nacteni udaju do nej, během práce s nim, az po ulozeni ... No, nie je to uplne ten pripad, ale je to podobne. Aplikacia cosi z kadesi stahuje a inserti do databazy. Nasledne commituje a konci. Pokial by v tom bol este nejaky next-next-back-back wizard modifikujuci data v db a vy nechcete mat partialne zmeny v tej databazi, tak to musite spravit dlhou otvorenou transakciou. Databaza je embedded, takze zdroje neriesim... -- Dusan ... tykajte mi
spring-jdbc a transakcie
Ahoj. Vzhladom na to, ze vsade na nete narazam na nazor, ze priamo s JDBC pracuje len hazarder a mal by sa pouzit aspon spring-jdbc, snazim sa s nim nejak zoznamit. V niektorych veciach sa mi vcelku paci a dokaze co-to ulahcit, ale zapasim s transakciami. V cistom jdbc je to jednoduche: Connection c = ...; c.execute(begin); try { c.execute... c.execute... c.execute... c.execute... c.execute(commit); // alebo rollback } catch () { c.execute(rollback); } S pomocou JdbcTemplate to ale nefunguje: org.h2.jdbcx.JdbcDataSource ds = new JdbcDataSource(); ds.setURL(jdbc:h2:/tmp/test); JdbcTemplate t = new JdbcTemplate(ds); t.getDataSource().getConnection().setAutoCommit(false); t.execute(drop table if exists data;); t.execute(create table if not exists data ( id integer, name varchar);); t.update(insert into data values ( 1, 'name1');); showTable(t); t.execute(begin); t.update(insert into data values ( 2, 'name2');); showTable(t); t.execute(rollback); showTable(t); Vystup: [{ID=1, NAME=name1}] [{ID=1, NAME=name1}, {ID=2, NAME=name2}] [{ID=1, NAME=name1}, {ID=2, NAME=name2}] Rollback bol ignorovany, pravdepodobne aj begin transaction. Bud som nespravnym sposobom naivne nastavil autocommit, alebo JdbcTemplate robi nejake dalsie harakiri s connection, ktore moc nechapem. Problem je, ze nikde na webe nemozem najst nejaky JEDNODUCHY navod, ako na transakcie so spring-jdbc. Nasiel som len kopu otazok bez odpovedi, pripadne odpovede s linkom na kopu xml chaosu a stovky riadkov mne nepochopitelneho kodu: http://static.springsource.org/spring/docs/2.5.x/reference/transaction.html Poradi niekto? Dik -- Dusan
Re: spring-jdbc a transakcie
On Tuesday 16 of February 2010 11:44:22 Martin Kuba wrote: Vyráběl jsem onehdy tutoriál, je tady: http://kore.fi.muni.cz:5080/wiki/index.php/Spring_JDBC#Transakce No, tam je ale vsetok jdbc kod v jednej metode. Co ak je dana transakcia rozbita na mnoho volani roznych tried? V jdbc dane triedy zdielaju jednu connection, takze mozem v jednej metode spravit insert, v druhej delete, v tretej update a ak to prezije az do stvrtej, tak to commitnut? -- Dusan ... tykajte mi
Re: spring-jdbc a transakcie
OK, presiel som to vsetko 3x a som na zaciatku. Skusim teda este raz: Mozem pouzivat spring-jdbc a vyuzivat jeho vyhody ( generiky v *template, row mappery a tak podobne ) a zaroven riadit transakcie rucne, bez roznych wrapperov, anotacii a uchylnych xml? Pretoze po preluskani vsemoznej dokumentacie a examplov tu uvedenych som dospel k zaveru, ze usetrene 4 riadky kodu (vypustenim PreparedStatement-u a try-catch) musim nahradit 50timi riadkami roznych wrapperov, callbackov a xml a este bohvie ako to konfigurovat (@Transactional), aby to vobec chodilo. Do toho sa mi fakt moc nechce ... :) Diky. Pokud se volají z jedné metody označené jako @Transactional, tak budou všechny v jedné transakci. Tj. klidně to může vypadat nějak takto: @Transactional public void hlavni(Nahrada nove) { Neco neco = najit(); smazat(neco); vlozit(nove); } Makub -- Dusan
Re: spring-jdbc a transakcie
On Tuesday 16 of February 2010 16:57:28 Kamil Podlesak wrote: Ano, prostě použijte: org.springframework.jdbc.datasource.SingleConnectionDataSource Samozřejmě při růstu aplikace za chvíli narazíte, ale to můžete řešit dodatečně. Diky -- Dusan
Deploy artifaktov na sourceforge.net
Ahoj. Ma niekto skusenosti so $SUBJ? Participujem na jednom projekte (qtjambi) a chcel by som vytvorit verejne pristupne maven repository s mnou vytvorenymi artifactami. Narazil som na http://docs.codehaus.org/display/MAVENUSER/MavenAndSourceforge a http://maven.apache.org/plugins/maven-site-plugin/examples/site-deploy-to-sourceforge.net.html, ale nejak to neviem rozchodit. Dalsim problemom je, ze niektore artifacty vznikaju ako klasicky projekt a niektore pomocou install:install-file. -- Dusan
Re: Deploy artifaktov na sourceforge.net
On Tuesday 19 of January 2010 15:21:33 Dusan Zatkovsky wrote: Ignorujte, vyriesene ... -- Dusan ... tykajte mi
Calendar +1 rok?
Ahoj. Prvy krat v zivote pouzivam java Calendar a pre oci asi nevidim. Dokaze mi niekto prosim vysvetlit toto: Calendar c = Calendar.getInstance(); c.set(2009,12,16); System.out.println(c.getTime().toString()); Sat Jan 16 11:15:17 CET 2010 ? Diky -- Dusan
Re: Odp: Calendar +1 rok?
Cislovani mesicu je od nuly, ne od jednicky. Tj. Prosinec je 11. Aha. Kalendar, kde sa mesiace pocitaju od 0. Zeby nejake mentalne zatmenie v SUNe? :) Diky. -- Dusan
Re: Odp: Calendar +1 rok?
Nicméně mentální zatmění to může být, stejně jako číslování sloupečků v JDBC ResultSet, které naopak (podle mě nelogicky) začíná od jedničky ;-) Ano, mentalne zatmenie to fakt je, java.util.Date pocita roky od 1900. Zacinam rozmyslat, ci som zvolil spravny programovaci jazyk ... -- Dusan ... tykajte mi
Re: Odp: Calendar +1 rok?
takhle to mate nejjistejsi ;-) c.set(2009,Calendar.DECEMBER,16); To hej, ale ja mam ten mesiac v int-e a nezmenim to ( konvertujem z QDate do Date/Calendar). Uz som si na to spravil konverzne metody. Diky -- Dusan ... tykajte mi
maven multi module project a version tag
Ahoj. Mam multimodule projekt: pom.xml module1/pom.xml module2/pom.xml V kazdom pom-e mam specifikovanu version. Ja by som rad docielil, ze by som verziu nastavoval len v main (pom) projekte a moduly (jar) by toto cislo verzie dedili. Da sa to nejak dosiahnut? Googlu sa asi neviem spravne optytat. Mozno existuje nejaka property, ktorou sa da dopracovat k parent projektu... Diky. -- Dusan
Re: maven multi module project a version tag
Ahoj, to nic neriesi, namiesto /project/version budem musiet rucne menit vzdy /project/parent/version v kazdom subprojekte. Ta verze stejne jako groupId se dedi z predka pokud neuvedete jinak. Jedine co musi mit kazdy POM definovat samostatne je artifactId z pochopitelnych duvodu. http://www.sonatype.com/books/maven-book/reference/pom-relationships-sect-p roject-inheritance.html -- Dusan
Re: JavaMail - posielanie mailov v cestine
Ahoj. Asi takto: MimeBodyPart text_part = new MimeBodyPart(); text_part.setText(message_text, UTF-8); text_part.setHeader(Content-Transfer-Encoding, quoted-printable); No a presne takto mi to nefunguje. Teraz si nie som 100% isty, ci v tomto pripade je zle len subject, alebo aj body. -- Dusan ... tykajte mi
maven generate-sources plugin - poradie
Ahoj, vylamujem si zuby na $SUBJ. Vyrobil som plugin, ktory generuje nejake zdrojaky v target/generated-sources/qtjambi. Plugin mam definovany ako: * @goal generate * @phase generate-sources * @requiresDependencyResolution compile a volam ho pomocou: plugin groupIdfoo/groupId artifactIdQtJambiPlugin/artifactId executions execution idqtjambi/id goals goalgenerate/goal /goals /execution /executions configuration sourcesDirsrc/main/java/sourcesDir /configuration /plugin Vo vnutri pluginu volam: // add dest dir as sources project.addCompileSourceRoot(destinationDir.getAbsolutePath()); ... aby som pridal mnou vygenerovane zdrojaky k buildu. Problem ale je, ze /target/generated-sources/qtjambi je kompilovany az po /src/main/java, takze pokial v src/main/java includujem cokolvek z qtjambi, konci to chybou. [...@localhost] mvn -X compile | grep -i roots [DEBUG] (f) compileSourceRoots = [/home/msk/work/test/test.cz/incubator/qtjambiplugin-master/test/src/main/java, /home/msk/work/test/test.cz/incubator/qtjambiplugin-master/test/target/generated-sources/qtjambi] Neprisiel som na to, ako zmenit poradie source adresarov. Ma niekto napad ako to vyriesit? Dik -- Dusan
Re: maven generate-sources plugin - poradie
On Wednesday 25 of November 2009 16:07:33 Dusan Zatkovsky wrote: Tak som to vyriesil, chyba bola inde. Aj mi to prislo zvlastne, pretoze vsade o mavene citam, ako je to deklarativny nastroj, takze poradie srcdir by na to nemalo mat vplyv. Sry4disturb. -- Dusan ... tykajte mi
maven archetypes v NetBeans
Ahoj. Vyrobil som si vlastny archetype. Ten by som rad poskytol dalsim vyvojarom v skupine. Cela skupina pouziva nas artifactory server ako maven repository, kde je dany archetype deploy-nuty ( v libs-releases ). V ~/.m2/settings.xml mam zda sa vsetko nastavene ako ma byt: profiles profile repositories repository ... namelibs-releases/name urlhttp://atrifactory:/artifactory/libs-releases/url ... urlhttp://atrifactory:/artifactory/libs-snapshots/url /repository /repositories pluginRepositories pluginRepository snapshots enabledtrue/enabled /snapshots ... urlhttp://atrifactory:/artifactory/plugins-releases/url ... urlhttp://atrifactory:/artifactory/plugins-snapshots/url /pluginRepository /pluginRepositories idartifactory/id /profile /profiles activeProfiles activeProfileartifactory/activeProfile /activeProfiles /settings Moja otazka smeruje k tomu, ako funguje Remote maven repositories v NetBeans maven wizardovi. Ked to rozbalim, tak sa to niekam pripoji a zobrazi 1000 dalsich archetypov, ale ten moj nie. Ked rucne pridam archetype podla groupId a artifactId, netbeans dany projekt vytvori korektne. Tomu sa ale chcem vyhnut, rad by som moje archetypy videl v Remote maven repositories, nech to nemusim na kazdom klientovi konfigurovat zvlast. Da sa to nejak zariadit? Dik -- Dusan ... tykajte mi
Re: Na zelenej lúke
- SCM: svn (s prístupom cez Apache a s overením na AD [možnosť https]; asi by postačovalo aj svnserve so SASL, ak by to bolo jednoduché nakonfigurovať Bacha na svn nad https, casto sa stretavam s problemami pri svn copy, svn mv a spol. Myslim ze ide o nejaky rozsireny bug v mod_svn. -- Dusan ... tykajte mi
Re: Maven -
Ahoj. Priznam sa, ze uplne nerozumiem vete: z ní potřebují mít nějaká konfigurační XML na classpath, ale přitom musí být rozbalená v adresáři. Kto musi byt rozbaleny v adresari? Len resources, alebo aj .class-y? Ak len resources - kolko ich je? Neslo by to ojekabatit tak, ze by sa v main() ulozili z .jar-u na disk? Offtopic: za javovske resources by som najradsej niekoho nakopol. Co projekt, to resources na inom url ( se aplikacia, ee aplikacia, se aplikacia s ws klientom, ... ). Uz som dospel do stavu, ze som si napisal vlastny ResourcesHelper a ten vyhladava resources na 4 roznych prefixoch, pretoze inak by som sa z toho posral ( napr. pridam do aplikacie ws klienta a hop - null pointer exceptions len taky fukot pretoze resources sa presunuli z / do /META-INF ...). začínám si hrát s Maven a nemohu prokopnout jeden problém. Vitaj v klube :) -- Dusan ... tykajte mi
Re: jaxb - default vytvaranie instancii complexType
Ahoj. Asi som to zle popisal, takze to trosku rozsirim: Primarne mi slo o ukladanie konfiguracie do xml. Kedze som doteraz vedel s jaxb pracovat len jednym smerom ( xsd-.java ), vyrobil som si teda xsd a niektorym elementom ponastavoval default hodnoty v tom xsd. Nasledne som s tym chcel pracovat uplne trivialne: config.getMySection().getMyValue(); config.getMySection().setMyValue(test); a zarazilo ma, ze getMySection() my vracia null a ze getMyValue() nevracia ten default, co som nastavil v xsd. A kedze som sa bal hrabnut do kodu vygenerovaneho z xsd ( neviem, ci sa pri dalsom builde nepregeneruje znovu , tak som sa zasekol. Nevadi, dik za info, zariadim sa podla toho. -- Dusan ... tykajte mi
jaxb - default vytvaranie instancii complexType
Ahoj. Zapasim s jaxb. Mam nasledovne xsd: xsd:element name=config xsd:complexType xsd:sequence xsd:element name=tst type=tns:test_ct nillable=true / /xsd:sequence /xsd:complexType /xsd:element xsd:complexType name=test_ct xsd:sequence xsd:element name=a type=xsd:string nillable=true/ /xsd:sequence /xsd:complexType ... z ktoreho vznika class-a Config. Problem je, ze v nasledovnom kode: Config c = new Config(); c.getTst().setA(a); dostavam null exception, pretoze getTst() vrati null. Da sa nejak jaxb donutit, aby defaultne vytvoril instanciu typu test_ct? Dik -- Dusan ... tykajte mi
Re: Verzovanie webových služieb
Ahoj. Tiez nie som v tejto veci profik, ale skusim dat par postrehov. 1. zmena struktury v db, alebo cokolvek v podvozku Pokial oddelis podvozok od webservice ( napr. pomocou ejb ), tak zmena sql dotazov bude nutna len v tom danom ejb. Webservicy sa o zmene nemusia vobec dozvediet. Toto sa da tusim naklikat v netbeans, je to webservice from existing java bean, alebo take daco. Vyhodou je, ze ten podvozok mozes za behu servera menit bez zastavenia sluzieb. 2. Zmena API danej webservice ... znamena, ze sa jedna o uplne novu webservice. Imho jedina moznost ako prevadzkovat ws so starym a novym api su 2 samostatne ws. Ja osobne to robim tak, ze cislo verzie ws je sucastou url. Neviem, ako inak a ci vobec by sa to dalo obist. Ciste teoreticky ma napada nejaka specialna http proxy, ktora by zo soap message urcila, o akeho klienta sa jedna a nasledne transparentne presmerovala request na ws spravnej verzie. To je ale z rise rozpravok, takze s5 na zem. 3. Zmena API podvozku Ak potrebujes zmenit API pod tou ws, vsetko zavisi na tom, o aku zmenu pojde. Niekedy nebudes musiet do ws vobec hrabat a pokial aj ano, zmenis nanajvys par riadkov. Urcite existuju este nejake sofistikovanejsie sposoby, dal som len hruby nacrt, povolanejsi nech sa vyjadria. Čo všetko bude treba verzovať 1.zdrojový kód - používame SVN, takže jednotlivé verzie by sa riešili formou vetiev. 2.WSDL 3.XSD Wsdl aj xsd mozu byt v svn, nie? -- Dusan ... tykajte mi
Re: jaxb - default vytvaranie instancii complexType
Resp. opytam sa inak: Vytvaram spravne instanciu Config() pomocou operatora new? Pohladom do kodu vidim, ze vygenerovane classy neobsahuju ziaden kod, len deklaracie a kopu @XmlElement, takze imho by som mal pouzit jaxb, ale neviem ako. Ahoj. Zapasim s jaxb. Mam nasledovne xsd: xsd:element name=config xsd:complexType xsd:sequence xsd:element name=tst type=tns:test_ct nillable=true / /xsd:sequence /xsd:complexType /xsd:element xsd:complexType name=test_ct xsd:sequence xsd:element name=a type=xsd:string nillable=true/ /xsd:sequence /xsd:complexType ... z ktoreho vznika class-a Config. Problem je, ze v nasledovnom kode: Config c = new Config(); c.getTst().setA(a); dostavam null exception, pretoze getTst() vrati null. Da sa nejak jaxb donutit, aby defaultne vytvoril instanciu typu test_ct? Dik -- Dusan ... tykajte mi
Rucna deserializacia xml pochadzajuceho zo soap message
Ahoj. Snazim sa vyriesit nasledovny problem ( tyka sa to datovych schranok ): Mam k dispozicii xml, ktore vyzera byt fragmentom nejakej soap message ( asi jej payloadom ). Konkretny priklad: ?xml version=1.0? q:MessageDownloadResponse xmlns:q=http://isds.czechpoint.cz/v20/message; xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; isds_send=https://www.czebox.cz/any/DS/dz; q:dmReturnedMessage p:dmDm xmlns:p=http://isds.czechpoint.cz/v20; p:dmID101761/p:dmID p:dbIDSenderabcdefgh/p:dbIDSender Takisto mam k dispozicii mnozstvo java class, vygenerovanych z xsd-cok, do ktorych sa pri priamom volani webservice toto xml transformuje. Ja by som rad to xml nejak deserializoval vyuzitim tych class a nepisal si vlastny sax parser. Som si takmer isty ( z priameho volania ws ), ze vysledok by mal byt v class-e HolderTReturnedMessage. Nedari sa mi ale prist na sposob, ako na to. Hladal som MessageDownloadResponse, to som nasiel vo wsdl ako: message name=MessageDownloadResponse part name=parameter element=tns:MessageDownloadResponse / /message Skusil som si vygenerovat .java zdrojaky z wsdl a skumat tam, ale jedine, na co som narazil, je: ObjectFactory.java: @XmlElementDecl(namespace = http://isds.czechpoint.cz/v20;, name = MessageDownloadResponse) public JAXBElementTMessDownOutput createMessageDownloadResponse(TMessDownOutput value) { return new JAXBElementTMessDownOutput(_MessageDownloadResponse_QNAME, TMessDownOutput.class, null, value); } a DmOperationsPortType.java: @WebMethod(operationName = MessageDownload) @RequestWrapper(localName = MessageDownload, targetNamespace = http://isds.czechpoint.cz/v20;, className = cz.czechpoint.isds.v20.TIDMessInput) @ResponseWrapper(localName = MessageDownloadResponse, targetNamespace = http://isds.czechpoint.cz/v20;, className = cz.czechpoint.isds.v20.TMessDownOutput) public void messageDownload( @WebParam(name = dmID, targetNamespace = http://isds.czechpoint.cz/v20;) String dmID, @WebParam(name = dmReturnedMessage, targetNamespace = http://isds.czechpoint.cz/v20;, mode = WebParam.Mode.OUT) HolderTReturnedMessage dmReturnedMessage, @WebParam(name = dmStatus, targetNamespace = http://isds.czechpoint.cz/v20;, mode = WebParam.Mode.OUT) HolderTStatus dmStatus); Tymto veciam vobec nerozumiem, predpokladam, ze tie anotacie robia nejaku magiu, ktora je mojim ociam ukryta. Tusi niekto ako na to? Dik. -- Dusan
maven, artifactory, deploy zo scriptu
Ahoj. Zacnem jednoduchou otazkou, aby ste to nemuseli cele citat, pokial existuje jednoducha odpoved. Da sa vyrobit taky maven projekt, ktory by nic nebuildil, ale za vysledok svojej prace by povazoval mnou podhodeny jar? Ide mi cisto o zapuzdrenie jaru tretej strany s mojim pom.xml a jeho deploy do artifactory. Obsirnejsi popis: Mam urcite jar-y, ktore chcem mat dostupne cez maven. To som doteraz riesil pomocou mvn install:install-file do lokalneho repozitara. Moje dalsie snazenie je dostat tieto projekty _scriptom_ do artifactory bez rucneho zasahu a web browsera. Napadaju ma 2 riesenia: 1. namiesto mvn install:install-file zavolat nieco ine, co by to uploadlo do artifactory 2. pouzit distributionManagement v pom.xml, co mam otestovane na jednoduchom HelloWorld projekte. Najradsej by som sa vybral cestou 2, ale neviem, ci je mozne docielit to, ze maven sa nebude pokusat buildit projekt zo zdrojakov (ziadne nema), ale (s)proste za vysledok svojej prace bude povazovat mnou podhodeny jar. Momentalne deploy do lokalneho repo vyzera nasledovne: libs/ qtjambi/ qtjambi-linux-32/ pom.xml qtjambi-linux32.jar pricom v pom.xml mam: project modelVersion4.0.0/modelVersion groupIdqtjambi/groupId artifactIdqtjambi-linux32/artifactId version4.5.2_01/version dependencies dependency groupIdqtjambi/groupId artifactIdqtjambi-base/artifactId version4.5.2_01/version typejar/type /dependency /dependencies /project a instalujem to pomocou: mvn install:install-file -Dfile=libs/qtjambi/qtjambi-linux32-lgpl-4.5.2_01/qtjambi-linux32-gcc-4.5.2_01.jar\ -DpomFile=libs/qtjambi/qtjambi-linux32-lgpl-4.5.2_01/qtjambi-linux32-gcc-4.5.2_01.pom -DcreateChecksum=true Je mozne nejak uvedeny pom.xml upravit tak, ze nebude nic buildit a deploy-ne externy jar? Dik -- Dusan
Re: maven, artifactory, deploy zo scriptu
On Wednesday 04 of November 2009 11:16:45 Tomas Vojtech wrote: Famozne. Diky moc. PS. niekedy obdivujem ludi, ktori sa hlboko vyznaju v mavenovi, lebo tak priserne zle zdokumentovany projekt som uz davno nevidel :) lze pouzit toto mvn deploy:deploy-file -DgroupId=org.apache.commons -DartifactId=com.springsource.org.apache.commons.logging -Dversion=1.1.1 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id] -- Dusan ... tykajte mi
Re: Provoz apletu proti db na internetu
Ahoj. Stránky mám umístěné u providera, který poskytuje PHP (a moje stránky mám v PHP naprogramované) s podporou MySQL. Nevím, jestli provider umožňuje připojení na MySQL z internetu, ale vlastně bych to tak i nerad provozoval z bezpečnostních důvodů. K veciam okolo javy a ajaxu sa nevyjadrim, java+web nie su moje silne stranky. Z pozicie byvaleho admina sa vyjadrim k architekture. Je otazka, ako velmi su data v db citlive. Pokial sa pouzije ssl a spravne sa nakonfiguruje databaza a firewall na databazovom stroji v Internete, nevidel by som v tom problem. Outgoing traffic by snad tiez nemusel byt u providera limitovany, ak ide o rozumny hosting, dalo by sa dohodnut. Otazkou vsak bude latencia medzi php aplikaciou a db, kedze db nebude hned meter vedla za gigabitovym dratom, ale niekde v Internete. -- Dusan ... tykajte mi
releasovanie free/komercnej verzie aplikacii
Ahoj. Momentalne stojim pred problemom, ako vyrobit 2 rozne release tej istej aplikacie ( free - mensia funkcionalita, komercna - plna ), aby som sa z toho nepos*al a neudrzoval 100 roznych svn stromov. Pred tym, nez zacnem vymyslat koleso by som sa rad opytal, ci niekto z vas daco take riesi(l). Mna viac menej napada spravit projekt ako multimodule maven projekt, pricom by som nejak pomocou profilov urcil, ci sa ma buildit aj komercny modul. Class-y v komercnom by teoreticky mohli extendovat free classy. Neviem ale, ako to potom cele zintegrujem, obavam sa roznych NoClassDefFound a inych exceptions a tak podobne. Nejaka idea? -- Dusan ... tykajte mi
Re: releasovanie free/komercnej verzie aplikacii
On Wednesday 04 of November 2009 14:39:53 Petr Prochazka wrote: Bude hodne zalezet na strukture projektu a co spada do free a co do business projektu. Ja osobne bych volil rozdeleni do modulu podle funkcnosti pro free a business, pripadne jeste na jadro aplikace. A distribuci bych resil v danych modulech nebo vytvoril uplne separatni moduly, ktere by resily pouze vytvoreni distribuce. Tak nejak si to predstavujem. Kazdopadne prvotny pokus naznacuje, ze to asi nebude vobec jednoduche. Mapr ma napada, ako budem v case buildu riesit neexistenciu urcitej classy? V c++ pouzijem #ifdef, v jave ekvivalent nepoznam. -- Dusan ... tykajte mi
Re: releasovanie free/komercnej verzie aplikacii
On Wednesday 04 of November 2009 14:42:47 Roman Pichlík wrote: Ako v zmysle: if(licenseOk()) { // stuff } ? Nebude to extremne jednoducho cracknutelne? Ja osobne by som najradsej vobec komercny kod vo free verzii nemal. -- Dusan ... tykajte mi
Re: releasovanie free/komercnej verzie aplikacii
já si to spíš představuju nějak takhle public String dummyImplementace() { return Teď bych v placené verzi vrátil něco rozumného!; } Tzn. nekontrolovat v kódu zda jde o plnou verzi nebo ne, ale udělat tu dummy implementaci natolik chytře aby nějak fungovala. Záleží samozřejmě na tom, o jakou jde aplikaci a zda to rozumně půjde. JJ, tak nejak si to predstavujem aj ja. Komercna classa by extendovala tu free a danu metodu by mala realne naimplementovanu. Teraz este ako predist chybam pri kompilacii? Ak mam: class Free { public String dummyImplementace() { return Teď bych v placené verzi vrátil něco rozumného!; } } a class Commercial extends Free { public String dummyImplementace() { return Teď bych v placené verzi vrátil něco rozumného!; } } ... tak co budem mat v Main()? Pretoze ked uvediem import foo.test.Commercial a dany modul nebude enablovany, tak to ani neskompilujem. -- Dusan ... tykajte mi
maven - propagacia version z pom.xml do .java
Ahoj. Je mozne nejakymi standardnymi maven-ovymi prostriedkami dostat cislo verzie baliku z pom.xml do java kodu ( chcem ho zobrazovat pomocou --help a nechcem to udrzovat na 2 miestach rucne ). Dik -- Dusan
Netbeans - formatovac kodu
Ahoj. Casto pouzivam formatovac kodu v Netbeans. Ten formatuje aj blank lines podla zadanych pravidiel. Mne ale toto chovanie nevyhovuje a o pocet prazdnych riadkov sa chcem starat rucne. Je to mozne nejak docielit, aby sa mi do toho nestaral? Ked dam 0, je vsetko na hromade, '-1' ani 'none' mi nezozere. Dik -- Dusan ... tykajte mi
Re: Balikovanie java aplikacii na linuxe
On Thursday 15 of October 2009 18:12:24 Ján Valkovič wrote: Ahoj. Ten deb-maven-plugin vyzera zaujimavo a pravdepodobne je to presne to, co som hladal.. Diky Zdravim, myslim, ze nejakym sposobom sa to uz riesi. Napr. jajuk[2] sa uz distribuuje ako balik v debiane (a ubuntu[1]). A existuje ak nejake prepojenie maven-deb[3]. [1] http://packages.ubuntu.com/jaunty/jajuk [2] http://jajuk.info/index.php/Main_Page [3] http://mojo.codehaus.org/deb-maven-plugin/ -- Dusan
Balikovanie java aplikacii na linuxe
Ahoj. Tento mail sa bude tykat prevazne linuxakov a mal by byt akymsi stuchancom do diskusie ohladne balikovania java aplikacii na linuxe. Ospravedlnte prosim jeho roztahanost a chaotickost ( pisal som to narychlo kym to drzim v hlave ). Bol by som rad, keby sa mi k tomuto mailu vyjadrili java linuxaci, co maju viac skusenosti s javou a mavenom a zhruba tusia co-to o linuxe. V linuxovom c++ svete su aplikacie distribuovane (prevazne) v balikoch. Pokial aplikacia dependuje na nejakych knizniciach ( povedzme libfoo, apache-commons-io a tak podobne ), tieto su takisto zabalene do samostatnych balikov a v balickovacom systeme sa vytvori zavislost aplikacie na jej knizniciach. To znamena, ze pokial niekto chce nainstalovat FooApp, automaticky sa mu nainstaluju libfoo a apache-commons-io. Pocas baliaceho procesu v lepsich balickovacich systemoch ( napr. debian ) baliace scripty automaticky podla zavislosti v .so knizniciach dokazu urcit zavislost aplikacie na knizniciach. U java aplikacii v linuxe je situacia ale zasadne odlisna (podla mojho nazoru katastrofalna). Aplikacie sa instaluju akymysi pochybnymi instalatormi, cim je znemoznene instalovat inam ako do $HOME, neriesia sa zavislosti a tak podobne. Uz z principu .jar je jasne, ze z neho nie je rozumne mozne urcit zavislosti a vsetko sa musi robit rucne. Package maintainer musi rucne zistit zavislosti ( googlom, skumanim kodu atd ), povyrabat rucne descriptory balikov, vyrobit baliky, rucne nastavit zavislosti, rucne vyrobit spustaci script, otestovat to ... Hrozna praca. V java svete dost casto narazam na situaciu, ze kazda aplikacia si so sebou taha kompletny bundle kniznic. Mne to pride typicky windowsacke, pretoze ta napodobenina OS skutocne nema ziaden rozumny dependency management. Dochadza tym ale k obrovskemu plytvaniu a chaosu. V linuxe by sa to ale malo riesit cestou zdielania zdrojov (kiniznic). Odskok bokom: U javistov som sa stretol s nazorom, ze je to tak dobre, pretoze nemoze dojst k roznym chybam plynucim z moznej nekompatibility. Podla mojho nazoru ale situacia nie je tak horuca, pretoze od toho tu predsa mame cislovanie verzii, z ktorych sa da urcit, ci je api kniznice spetne a dopredne kompatibilne s pozadovanym stavom. Pokial sa toto cislovanie dodrzi, problem odpada. Navrat: Casom ako sa zoznamujem s mavenom, silne mi to pripomina zavislosti v linuxovych balikoch. A tak sa mi vnukla myslienka, ci nevyuzit jeho dependency management na akesi automaticke vytvorenie linux balikov z mavenizovaneho projektu. Samotny maven nepomoze, pretoze riesi len vyvoj, nie dalsi zivot aplikacie. Na samotne spustenie aplikacie je bud potrebne mat k dispozicii potrebne jar-y niekde na disku, alebo assemblovat zavislosti spolu s aplikaciou ( co zase naburava celu ideologiu a nafukuje aplikaciu o megabajty chaosu), programovat spustacie scripty a tak podobne. Jeho /dependencies/dependency by sa dal lahko vyuzit. Priklad: groupIdnet.test/groupId artifactIdMyLibrary/artifactId packagingjar/packaging version2.0/version Z tychto informacii dokazem vytvorit meno linuxoveho baliku MyLibrary-2.0.deb, to je prvy krok. Pokial by som vyriesil, aby mvn install neinstaloval do ~/.m2, ale napr. do /usr/local/java/maven/, mohol by som po mvn install rovno vysledok zabalit a balik by bol hotovy. Vysledok: usr local java maven repo net test MyLibrary 2.0 MyLibrary-2.0.jar MyLibrary-2.0.pom Nasledne by bolo mozne z nasledovnej aplikacie vyrobit dalsi balik MyApplication-1.0.deb s podobnou stromovou strukturou. groupIdnet.test/groupId artifactIdMyApplication/artifactId packagingjar/packaging version1.0/version dependencies dependency groupIdnet.test/groupId artifactIdMyLibrary/artifactId version2.0/version Kedze pom.xml ma dependencies, slo by v zavislostiach -baliku- urcit, ze zavisi na MyLibrary-2.0.deb. Takisto by sa mohlo z pom-u ziskat main-class a vyrobit spustaci script: #!/bin/bash java -cp /usr/local/java/maven/repo/net/test/MyLibrary/2.0/MyLibrary-2.0.jar /usr/local/java/maven/repo/net/test/MyApplication/1.0/MyApplication-1.0.jar net.test.Main Nasledne by po instalacii MyApplication doslo k automatickej instalacii MyLibrary a vytvoreniu scriptu co aplikaciu spusti. Vysledok: usr local bin myapplication (.sh) java maven repo net test MyLibrary 2.0 MyApplication-1.0.jar MyApplication-1.0.pom Teraz by este bolo dobre nejakym sposobom spristupnit repozitar v /usr pre java vyvojara tak, aby mohol pouzivat kniznice z balikov. Pokial ma maven moznost pouzivat 2 lokalne repozitare ( musim overit ), mohol by pouzivat ~/.m2 klasicky ako doteraz a k tomu este projekty z /usr ako projekty distribuovane spolu z
Re: Použité technologie
On Thursday 15 of October 2009 12:47:01 Petr Zajíc wrote: Nainstaloval jsem Tomcat, použil JasperReports, napsal jednoduchý servlet který vygeneruje Report v následujícím smyslu: A PHP pak zavolá URL kde Tomcat poslouchá a to PDFko si nasosá. Pokial neriesite autorizaciu, kto by mal k tomu PDF mat pristup, tak v tom nevidim problem. -- Dusan
Re: Balikovanie java aplikacii na linuxe
On Thursday 15 of October 2009 14:08:53 Martin Kuba wrote: No, pokud vím, existuje http://www.jpackage.org/ který už má javové balíčky pro linuxy vyrobené. Ano, o JPackage som pocul, ale nepoznam background. Silne sa obavam, ze to bude prave pripad rucnej prace. OpenSuse, které používám na svém desktopu, obsahuje jaksi mírně upravené balíčky z jpackage. Nicméně, vyhýbám se těmto balíčkům jak čert kříži. Pozeral som na na JPackage cca rok dozadu a prislo mi, ze su tam od vsetkeho 100 rokov obsolete verzie. Hrozně mi totiž vadí, že kdosi za mě rozhodl, jakou verzi toho kterého programu či knihovny potřebuju. A ako inak chcete docielit, aby v tom nebol bordel? U c++ aplikacii to nie je o nic jednoduhsie. Proste v stable systeme je k dispozicii (vacsinou) posledna otestovana stable verzia a voci tej sa aplikacie musia linkovat. Okrem toho, pokial sa dodrzi major version, tak neni problem na systeme s kniznicou 1.2.25 pustit aplikaciu vyvinutu na verzii 1.2.1. Pokial sa tieto pravidla dodrzuju, tak ak by sa nasla chyba v apache-logging.1.2.3, staci opravit jeden balik a system je zase ok. Pokial si 100 aplikacii so sebou bundluje kniznice, musi sa revidovat 100 balikov. Take nieco udrzovat kazdy vzda a potom je v tom presne taky bordel, aky v tom je dnes. -- Dusan
Re: Balikovanie java aplikacii na linuxe
Bohuzel s bohatosti Maven repositories se to vubec neda srovnat. Podle me by bylo dobre rict, co tim vlastne chcete dosahnout? Aby se kazda java aplikace dala rozbit na desitky jaru, ty dat do dependencies v DEB souboru a tim padem by se tahal jen ciste vas kod o zbytek by se starl debian? Samozrejme nechcem rozbijat nerozdelitelne. Odovedou budiz reply pre MaKuba. V podstate mi ide o lepsiu penetraciu javy na linux a s tym suvisi najst sposob ako ten system nejak rozumne udrzovat ( bezpecnostne aktualizacie a tak podobne ). Zdielat zdroje. Nehovorte mi, ze medzi 50 java aplikaciami nenajdem mnozinu spolocnych kniznic rovnakych (alebo velmi blizkych) verzii, ktore su vzajomne kompatibilne. Apache commons.*, jaxb, ws, jdbc drivery, je toho obrovske mnozstvo. To by mi prislo jako prace pro vraha (resp. pro nejaky skript), ktery by ze vsech jaru (pokud mozno z maven repositories nebo neceho podobneho) udelal deb balicky a to vcetne vsech verzi a napral je do debian repository. Presne o tom pisem. Tak ako existuje maven assembly plugin, ktory vyrobi zip ( v linuxe absolutne nepouzitelny ), bol by plugin, co by na linuxe vyrobi kostru baliku a package maintainer si ho moze upravit podla potreby a zahrnut do distribucie. Taky by se musely vsechny aplikace upravit, aby braly jary ze systemu misto z nejakeho sveho vlastniho lib folderu, jak je beznym zvykem. Prave, java je preslavena svojimi beznymi zvykmi, ktore su ale uplne naprd. OK, nebavme sa teraz o existujucich aplikaciach. Vyrabam 2 (3,4,100) nove java aplikacie pomocou maven-u, obe pouzivaju 40MB tych istych kniznic. Ako budem tie kniznice zdielat, aby som nedistribuoval 80,100,800MB? Ano, sposobom allinone je distribuovane kde-co a v pripade rozsiahlych projektov to ma urcity zmysel. Netbeans,GlassFish,... Ale prave .zip a spol je dovod, preco si vacsina linuxakov (donedavna vratane mna) o jave mysli, ze je to windows-only zalezitost a s javou nechce mat nic spolocne. Pretoze v jave proste neexistuje rozumne systemove riesenie na zdielanie zdrojov. V linuxe je jedina schodna cesta, ako instalovat software, cez balickovaci system (resp. jeho ekvivalent) a maximalne editnut nejake konfiguraky. Je to neuveritelne pohodlne. Za navod choj klikni stiahni rozbal skopiruj vyrob_si_script vam nikto nepodakuje. O dostupne aplikacie sa stara tim ludi, ktory je zodpovedny za to, aby to vsetko chodilo. V pripade najdenej chyby sa opravi zasiahnuty balik a ide sa dalej. Takze pokial sa ma java posunut blizsie uzivatelom *nixov, nestaci im povedat tu mas zip, nainstaluj si to. -- Dusan ... tykajte mi
Re: Balikovanie java aplikacii na linuxe
On Thursday 15 of October 2009 15:41:15 Martin Kuba wrote: Nestačilo by udělat skriptík, který by usnadňoval vytvoření dalšího balíku pro JPackage s využitím repository Mavenu ? Ano, ked sa zameriame na tento pripad *1, presne to by stacilo. Akurat potom este vysvetlit mavenu, ze ma pouzivat aj kniznice nainstalovane z JPackage. *1 - JPackage je rpm, balickovacich systemov je viac, takze by ten script proste vedel outputnut vo viacerych formatoch ( som debianista ). -- Dusan
Re: Balikovanie java aplikacii na linuxe
On Thursday 15 of October 2009 15:44:29 Tomas Hubalek wrote: Tohle nechapu: proc to zkoumat? Proc to nehodit proste do /opt/myapp a jen prekontrolovat jestli je trochu rozume napsany shell script pro spousteni, cili ze si zjisti, kde je aplikace nainstalovana a z jejiho libu hodi vsechno na classpath (vim ze v nekolika pripadech tohle nestaci, ale naproste vetsine aplikaci ano)? Dusan Zatkovsky napsal(a): Pokial sa tieto pravidla dodrzuju, tak ak by sa nasla chyba v apache-logging.1.2.3, staci opravit jeden balik a system je zase ok. Pokial si 100 aplikacii so sebou bundluje kniznice, musi sa revidovat 100 balikov. Take nieco udrzovat kazdy vzda a potom je v tom presne taky bordel, aky v tom je dnes. -- Dusan
Re: Balikovanie java aplikacii na linuxe
On Thursday 15 of October 2009 15:51:23 Tomas Hubalek wrote: Tykalo se to problemu, kdy to se SLF4j 1.5.5 fungovalo a 1.5.6 uz ne. Takze 1.5.6 bol bugovy release, pretoze podla cisla verzii to fungovat muselo. U toho hibernate tam to se to bylo neco jako 3.1 a 3.2, uz si to nepamatuju. Ani tu by nemal byt problem. -- Dusan
Re: Balikovanie java aplikacii na linuxe
On Thursday 15 of October 2009 16:05:32 Tomas Hubalek wrote: BTW: Jen male vysvetleni, proc se branim myslence, ktera neni tak uplne spatna. Jsem JEE vyvojar a mam uplne jine zkusenosti nez vy. V podnikove sfere jsou spravci Linuxu lidi daleko od nas, kteri si strasne neradi nechaji sahat na konfiguraci sveho linuxu. Jakykoliv novy .deb,.rpm nebo cokoliv jineho vyvovala v nejlepsim pripade kysele xychty a nutnost vyplneni miliony ticketu v tech jejich zatrolenych systemech. To vcelku chapem. Kdyz jim dam jeden zip a reknu, tady to rozbal a timhle shellem pust, nebo jim dam jeden war a reknu prskni to do tomcatu jsou spokojeni. Jak musi menit neco v tomcatu nebo v systemu, jsou nas*ani, protoze nevedi, co jim to kde muze rozbit. Aha. A ako to potom udrzuju a zaplatuju? To rucne chodia po forach a zistuju, ci jedna z tych kniznic v zipe nahodou nie je buggy, nema v sebe bezpecnostnu dieru, a potom to rucne zaplatuju? Nie, oni sa na to vyseru a nechaju to tak, ako to je, pretoze je to pre nich pohodlnejsie. A o tom je prave balickovaci system v linuxe, ze existuje skupina ludi, ktora je ochotna investovat effort na to, aby ten operacny system a aplikacie v nom beziace neboli derave ako reseto a administrator akurat stahuje bezpecnostne updaty. V JEE se podle me nehledi tolik na teoretickou cistotu, ale na spolehlivost. Kdyz pouziju jar, ve kterem je chyba, je ten problem z hlediska firmy na me a ne na jejim autorovi. Nechci aby mi kdokoliv menil verzi Oracle driveru, jenom proto, protoze ta minor verze ma nejaky bug (doporucuju mrknout na to kolik je v kazde minor verzi opravenych chyb: Ano, vo svete, kde sa neriesi kompatibilita a release sa vydavaju a cisluju hala bala bez rozmyslu to presne takto funguje. PS. Najviac ma zaraza, ze vo svete c++, kde je 1000 a 1 verzia syntaxe, desiatky nekompatibilnych kompilatorov, vzajomne nezlinkovatelnych binarok a tak podobne su maintaineri schopni udrzovat GIGABAJTY aplikacii tak, ze funguju a zdielaju kniznice, ale vo svete, kde je jeden .class v jednom bytekode spustitelny kdekolvek na svete na akejkolvek platforme je toto neriesitelny problem. Dost, koncim flame, pretoze sme uplne odbocili od povodneho zameru - zistit, ci by bolo mozne maven takto pouzit. Podla mojho nazoru ano, takze ked sa niekde zaseknem, poprosim nasledne o radu s konkretnym problemom. -- Dusan ... tykajte mi
JavaMail - MimeBodyPart.attachFile()
Ahoj. Ma tu niekto skusenosti s JavaMail? Konkretne sa mi jedna o uvedenu metodu. Kod: MimeBodyPart part1 = new MimeBodyPart(); part1.attachFile( new File ( /etc/passwd); part1.setFileName(passwd); MimeBodyPart part2 = new MimeBodyPart(); part2.attachFile( new File ( passwd.txt); part2.setFileName(/tmp/passwd.txt); /etc/passwd je ako kazdy vie ascii textovy subor. passwd.txt je jeho prosta kopia pod inym nazvom (.txt). Nasleduje problem: System.out.println(part1.getContentType()); System.out.println(part1.getContent().getClass()); // text/plain, java.io.FileInputStream System.out.println(part2.getContentType()); System.out.println(part2.getContent().getClass()); // text/plain, java.lang.String !!! Vypada to, ze ten nejak heurestikuje podla mena a obsahu suboru a usudi, ze textovy subor je mozne ulozit do stringu. To je ale presne to, co nechcem, pretoze sa obavam, ze pri dekodovani smime spravy moze dojst k nejakym neocakavanym javom ( kodovanie a spol... ). Pozeral som sa aj na vysledky pomocou part.writeTo(System.out), oba su zhodne: Content-Disposition: attachment; filename=passwd ... obsah suboru Content-Disposition: attachment; filename=passwd.txt ... obsah suboru Da sa nejak MimeBodyPart donutit, aby attachFile() robil skutocny attach file? Dik. -- Dusan ... tykajte mi
Re: JavaMail - MimeBodyPart.attachFile()
DD. Diky, ale nepomohlo: for ( String s : new String[] { /etc/passwd, /tmp/passwd.txt } ) { FileDataSource fds = new FileDataSource(new File(s)); DataHandler dh=new DataHandler(fds); System.out.println(dh.getContentType()); } - java.io.FileInputStream - java.lang.String Dobry den, skuste attachment pridat cez DataHandler: MimeBodyPart oBody = new MimeBodyPart(); FileDataSource oFds = new FileDataSource(/etc/passwd.txt); oBody.setDataHandler(new DataHandler(oFds)); oBody.setFileName(passwd.txt); S pozdravom Radovana Straube --- On Tue, 10/6/09, Dusan Zatkovsky msk.c...@gmail.com wrote: From: Dusan Zatkovsky msk.c...@gmail.com Subject: JavaMail - MimeBodyPart.attachFile() To: Java konference@java.cz Date: Tuesday, October 6, 2009, 11:57 AM Ahoj. Ma tu niekto skusenosti s JavaMail? Konkretne sa mi jedna o uvedenu metodu. Kod: MimeBodyPart part1 = new MimeBodyPart(); part1.attachFile( new File ( /etc/passwd); part1.setFileName(passwd); MimeBodyPart part2 = new MimeBodyPart(); part2.attachFile( new File ( passwd.txt); part2.setFileName(/tmp/passwd.txt); /etc/passwd je ako kazdy vie ascii textovy subor. passwd.txt je jeho prosta kopia pod inym nazvom (.txt). Nasleduje problem: System.out.println(part1.getContentType()); System.out.println(part1.getContent().getClass()); // text/plain, java.io.FileInputStream System.out.println(part2.getContentType()); System.out.println(part2.getContent().getClass()); // text/plain, java.lang.String !!! Vypada to, ze ten nejak heurestikuje podla mena a obsahu suboru a usudi, ze textovy subor je mozne ulozit do stringu. To je ale presne to, co nechcem, pretoze sa obavam, ze pri dekodovani smime spravy moze dojst k nejakym neocakavanym javom ( kodovanie a spol... ). Pozeral som sa aj na vysledky pomocou part.writeTo(System.out), oba su zhodne: Content-Disposition: attachment; filename=passwd ... obsah suboru Content-Disposition: attachment; filename=passwd.txt ... obsah suboru Da sa nejak MimeBodyPart donutit, aby attachFile() robil skutocny attach file? Dik. -- Dusan ... tykajte mi -- Dusan ... tykajte mi
Re: JavaMail - MimeBodyPart.attachFile()
On Tuesday 06 of October 2009 12:46:44 Gabriel Gajdos wrote: Nie je problém v tom, že nepoužívaš Multipart message? Teda ak máš v maili iba jednu časť, tak tá je zároveň aj jeho jediným telom. Skúšal si pridať nejaký text (aspoň posielam subory)? Vyrabam si mnozinu BodyPart-ov, ktoru nakoniec zlucim do MultiPart a zapisem do outputstreamu. Na tento problem som narazil v uz hotovom kode, ktory realne pouzivam na smime prenos velkych suborov uz nejaky cas. Prejavilo sa to v momente, ked sa subor koncil na .txt. Pozriem sa na tu filetypemap, co pisala Radovana. Diky GG -Original Message- From: konference-boun...@java.cz [mailto:konference-boun...@java.cz] On Behalf Of Dusan Zatkovsky Sent: Tuesday, October 06, 2009 12:40 PM To: Java Subject: Re: JavaMail - MimeBodyPart.attachFile() Este ma napadlo - ja by som este teoreticky dokazal prezit, ze sa mi .txt nacitava do stringu, ale problem bude u velkych suborov, pretoze moj pokus s 2x800MB ascii subormi foo.txt a jeho kopiu foo.bin dopadol tak, ze volanie attachFile() (a alternativa s DataSource) pre foo.bin trva zlomok sekundy (vytvori sa len referencia na subor), ale u foo.txt to vyzere pamat a crashne (nacitava 800MB do stringu). DD. Diky, ale nepomohlo: for ( String s : new String[] { /etc/passwd, /tmp/passwd.txt } ) { FileDataSource fds = new FileDataSource(new File(s)); DataHandler dh=new DataHandler(fds); System.out.println(dh.getContentType()); } - java.io.FileInputStream - java.lang.String Dobry den, skuste attachment pridat cez DataHandler: MimeBodyPart oBody = new MimeBodyPart(); FileDataSource oFds = new FileDataSource(/etc/passwd.txt); oBody.setDataHandler(new DataHandler(oFds)); oBody.setFileName(passwd.txt); S pozdravom Radovana Straube --- On Tue, 10/6/09, Dusan Zatkovsky msk.c...@gmail.com wrote: From: Dusan Zatkovsky msk.c...@gmail.com Subject: JavaMail - MimeBodyPart.attachFile() To: Java konference@java.cz Date: Tuesday, October 6, 2009, 11:57 AM Ahoj. Ma tu niekto skusenosti s JavaMail? Konkretne sa mi jedna o uvedenu metodu. Kod: MimeBodyPart part1 = new MimeBodyPart(); part1.attachFile( new File ( /etc/passwd); part1.setFileName(passwd); MimeBodyPart part2 = new MimeBodyPart(); part2.attachFile( new File ( passwd.txt); part2.setFileName(/tmp/passwd.txt); /etc/passwd je ako kazdy vie ascii textovy subor. passwd.txt je jeho prosta kopia pod inym nazvom (.txt). Nasleduje problem: System.out.println(part1.getContentType()); System.out.println(part1.getContent().getClass()); // text/plain, java.io.FileInputStream System.out.println(part2.getContentType()); System.out.println(part2.getContent().getClass()); // text/plain, java.lang.String !!! Vypada to, ze ten nejak heurestikuje podla mena a obsahu suboru a usudi, ze textovy subor je mozne ulozit do stringu. To je ale presne to, co nechcem, pretoze sa obavam, ze pri dekodovani smime spravy moze dojst k nejakym neocakavanym javom ( kodovanie a spol... ). Pozeral som sa aj na vysledky pomocou part.writeTo(System.out), oba su zhodne: Content-Disposition: attachment; filename=passwd ... obsah suboru Content-Disposition: attachment; filename=passwd.txt ... obsah suboru Da sa nejak MimeBodyPart donutit, aby attachFile() robil skutocny attach file? Dik. -- Dusan ... tykajte mi -- Dusan ... tykajte mi
Re: JavaMail - MimeBodyPart.attachFile()
On Tuesday 06 of October 2009 12:46:54 Radovana Straube wrote: FileDataSource ma metodu setFileTypeMap(FileTypeMap map). V dokumenatacii k Perfekt ! Riesenim sa teda zda byt: public class Foo extends FileTypeMap { @Override public String getContentType(File file) { return application/octet-stream; } @Override public String getContentType(String filename) { return application/octet-stream; } } MimeBodyPart part = new MimeBodyPart(); FileDataSource fds = new FileDataSource(file); fds.setFileTypeMap(new Foo()); DataHandler dh = new DataHandler(fds); part.setDataHandler(dh); Dakujem. triede javax.activation.FileTypeMap stoji : Implementations of this class will implement the getContentType methods which will derive a content type from a file name or a File object. Mozno by Vam pomohlo naimplementovat vlastnu triedu odvodenu z FileTypMap. Radovana Straube -- Dusan ... tykajte mi
Re: datove schranky - webservices
Ahoj. Datove schranky su otrasny paskvil. Imho nepouzivaju klasicky WS-Security, ale (z mojho uhlu pohladu) nejaky workaround vo forme akehosi https proxy serveru, na ktory sa treba prihlasit https klientom, nasleduje x presmerovani a nakoniec ziskanu cookie nainjectovat do toho portu webservices. Takze klasicky pristup cez netbeans je naprd. Okrem ineho tie wsdl nejdu pouzit priamo v netbeans ( stylom klik-klik, add new web service client, klik klik ), pretoze projekt sa sice zbuildi, ale po spusteni hadze nejake nicnehovoriace exceptions ( Unable to create JAXB context ). Treba fakt precitat ten ich readme, kde popisuju, ako uvedene wsdl-y rucne konvertovat na .java. Zaregistrujte sa v testovacom prostredi, nasledne sa da dopracovat k java demu, kde sa da inspirovat. Uprimne prajem vela stastia ... Dobry den, s datovymi schrankami skusenost nemam, ale wsdl s nastavenym WS-SecurityPolicy mate v prilohe. Kontrola mena a hesla sa vykona v triede, ktora implementuje rozhranie com.sun.xml.wss.impl.callback.PasswordValidationCallback. Tu si musite napisat. V mojom wsdl sa vola de.bolsys.stala.service.gewerbe.PasswordValidator. S pozdravom Radovana Straube --- On Tue, 10/6/09, Jindrich Vimr jv...@softeu.com wrote: From: Jindrich Vimr jv...@softeu.com Subject: Re: datove schranky - webservices To: Java konference@java.cz Date: Tuesday, October 6, 2009, 3:07 PM Dusan Zatkovsky wrote: On Friday 04 of September 2009 12:30:46 Dusan Zatkovsky wrote: Uz som to nejak vykradanim kodu s dema uchodil. Diky za rady. Preji hezky den, tak jsem taky dostal nahrb DS, a take z toho nejsem moc moudry :-(. Muzete se nekdo podelit se zkusenostma? Zatim jsem zkusil pouzit spring-ws a implementovat vlastni WebServiceTemplate, ale tam narazim na problem s presmerovanim na login service. Take zkousim pomoci metro projektu vygenrovat service/port z wsdl (wsimport), ale tam zase narazim na to jak mu vnutit username/pw. Ted se chystam na rozchodit WebService s HTTPS username/password zalozeny na frameworku Metro (dle odkazovaneho clanku), uvidime (asi kvuli tomu nainstaluju i NetBeans ;-) ) Nemel by nekdo aspon castecne naznak reseni? Alespon wsdl s nastavenym WS-SecurityPolicy abych to mohl pouzit v metro projektu? Jeste mam jednu otazku: testovaci prostredi bezi na https://www.czebox.cz/DS/* , kde pobezi ostra verze? nebo je na tehle adrese uz rovnou ostra verze? Diky za rady Jindra -- Jindrich Vimr E-mail: jv...@softeu.com Cell: +420 775 638 011, Phone: +420 371 124 386 SoftEU s.r.o. Lochotínská 18, 301 00 Plzeň, Czech Republic Phone +420 371 124 300, Fax: +420 373 729 301 -- Dusan ... tykajte mi
maven2 + jaxb?
Ahoj. Nez sa psychicky totalne vycerpany uchylim k napisaniu primitivneho shell scriptu, poradte prosim, ako (ktory plugin) mam pouzit pre jaxb do mavenu. Google nasiel viac pluginov, z ktorych jeden zarucene nefunguje (The plugin 'com.sun.tools.xjc.maven2:maven-jaxb-plugin' does not exist or no valid version could be found), ostatne maju bud obsolete howto (neexistujuce repozitare), alebo su tazkopadne (primitivne). OT: Zacinam byt z toho pekne nasrany, pretoze od prechodu na maven nerobim nic ine, len copy-pastujem z roznych pochybnych webov a blogov rozne fragmenty xml kodu s mizernou dokumentaciou a k samotnemu vyvoju sa obrazne povedane dostavam dost zriedka :-) Nehovoriac o fakte, ze za konfiguraky v xml by som obecne vrazdil. Diky -- Dusan
Re: kodova stranka projektu na windows
On Tuesday 15 of September 2009 11:19:29 Jakub Podlesak wrote: Rikal jsem to Milosovi Kleintovi, ktery ma maven podporu v NetBeans na svedomi. Prosi o zadani bug reportu [1]. http://www.netbeans.org/issues/show_bug.cgi?id=172265 Diky -- Dusan
kodova stranka projektu na windows
Ahoj. Mohol by mi niekto prosim poradit ohladne kodovych stranok a java aplikacii na windows? Mam ceske wxp, maven projekt v netbeans. Projekt pouziva h2 databazu a momentalne je cely kodovany v cp1250 (*1). Problem mam s nasledovnym kodom: Config.dbDir = new File( System.getenv(APPDATA), foo); String url = jdbc:h2: + Config.dbDir.getAbsolutePath(); Logger.getLogger(Database.class).debug ( Database url: + url); return DriverManager.getConnection(url); Ten vytvara databazu ( a aj to tak loguje ) v C:\Documents and Settings\msk\Data aplikacˇ\foo, co nie je zrovna to, co potrebujem. Dokazal by mi niekto objasnit, ako je to v jave na windows s defaultnym kodovanim a preco sa to chova takto podivne? Jedine, co ma napada je, ze getenv() vrati string v nejakej blbej kodovej stranke ( co by imho nemalo ) a potom sa to taha napriec projektom (*2). *1: Dost ma zarazilo, ze zmenou kodovania projektu ( Project_properties/Sources/Encoding ) sa meni aj text v logoch. *2: Sucastou aplikacie je aj zapis tejto cesty do registrov pomocou ini4j. Kolega nad tym stravil 2 dni, nez dosiel do stavu, ze vola: new String(old_string.getBytes(cp852)) + \\some_path, k comu dosiel asi nejakou heurestikou, pretoze ja som sa s tym lamal nejaky cas a nepodarilo sa mi tu cestu spravne zapisat. Dik. -- Dusan
Re: kodova stranka projektu na windows
Dokonca som prisiel na to, ze obycajne: public static void main(String[] args) { System.out.println(System.getenv(APPDATA)); } funguje spravne, pokial sa jedna o ant projekt ( kodovanie zdrojakov nehra rolu ), a nezmysly to vracia len v pripade, ze je to maven projekt. To uz vyzera dost porozrivo. -- Dusan
Re: kodova stranka projektu na windows
On Monday 14 of September 2009 15:20:24 Dusan Zatkovsky wrote: Tak uz som to nasiel. Kurvi to samotny netbeans, alebo sposob, akym exec-uje projekt, pretoze pomocou java -jar ... z konzoly je to ok. A teraz co s tym. Aplikaciu potrebujem ladit a predstava, ze to budem pustat rucne z cmd.exe ma zrovna moc nebere :) ... funguje spravne, pokial sa jedna o ant projekt ( kodovanie zdrojakov nehra rolu ), a nezmysly to vracia len v pripade, ze je to maven projekt. To uz vyzera dost porozrivo. -- Dusan
Re: maven, getResourceAsStream() a webservice-client
No, tak tu je to podstatne zabavnejsie. package foo.test; public class App { public static void main(String[] args) { System.out.println(App.class.getResource().getFile()); } } 1. pokial to pustim v NB, dostanem: /home/msk/NetBeansProjects/delme1234/target/classes/foo/test/ 2. pokial to pustim ako java -cp target/delme.jar foo.test.App, dostanem: file:/home/msk/NetBeansProjects/delme1234/target/delme1234-1.0-SNAPSHOT.jar!/foo/test/ ... cim som vlastne vyriesil dany problem len ciastocne, pretoze pri tomto zazracnom spravani nebudem schopny danu aplikaciu rozumne ladit :-) Zkusil bych si vzit /getResourceAsStream()/ (nebo /getResource()/), abych z toho ziskal typ File a znej si pak vytisknout |*getCanonicalPath http://www.j2ee.me/javase/6/docs/api/java/io/File.html#getCanonicalPath%28 %29*(). To Vam ukaze, kde je root. Nedavno jsem to resil uplne stejnym zpusobem, ale kod jiz samozrejme nemam. Arny Dusan Zatkovsky wrote: Ahoj. Narazil som na problem s in-jar resources a neviem si rady. Vyrobim si maven quickstart projekt. V src/main/resources vytvorim subor foo.txt. Nasledne v main() zavolam: x = Main.class.getResourceAsStream(/foo.txt); Dostanem inputstream na ten foo.txt. Ten je v jar-e ulozeny priamo v roote ako /foo.txt. Problem nastane v momente, ked do toho projektu pridam webservice client. Od tohoto momentu mi getResource() vracia null. Pravdepodobne to bude suvisiet s tym, ze maven nejak preorganicuje projekt kvoli tej WS, ale ja neviem, kde mam ten foo.txt nasledne hladat. V jar-e ho vidim v /META-INF/main/java/resources/foo.txt, ale neviem, kde vidi getResource() svoj root, pretoze som skusal od /META-INF postupne uberat kazdy podadresar a na vsetko som dostal null. Tusi niekto? D. -- Dusan
datove schranky - webservices
Ahoj. Riesi niekto z Vas datove schranky v Jave? Momentalne bojujem s ich java-demo, ale dokumentacia je katastrofalna, example zastarale, takze to rozne zliepam z utrzkov kodu, na ktory postupne narazam rozne po webe. Narazam na problem ( a programatorsku lenivost ), ze prihlasenie k DS prebieha nejakymi podivnymi redirectami, ktore jax-ws nezvlada. Existuje nejaky iny web-services framework, s ktorym by to slo naprogramovat normalne? Robit rozne hacky s http-postom a parsovanim cookies mi pride vyslovene enterprise... Dik -- Dusan
Re: datove schranky - webservices
On Friday 04 of September 2009 12:35:48 Filip Jirsák wrote: Zdravím, nám ten příklad normálně fungoval, při přesměrování je potřeba pouze si cookies zaznamenat a přiložit je k dalšímu požadavku. Mozem sa opytat, kedy ste to testovali? Ja mam totiz k dispozicii demo projekt, ktory ma neplatne wsdl ( na uvedenych url nic nepocuva ) a nove wsdl, kde uz ale neni ten projekt a nazvy tych ws mi nematchuju :o) -- Dusan
Re: datove schranky - webservices
On Friday 04 of September 2009 12:53:00 Filip Jirsák wrote: Jestli si to dobře pamatuju, tak testovací verze byla na https://pilot.czebox.cz/DS/, ta už ale není podporována. Pokud si požádáte o přihlašovací údaje k testovacímu prostředí, měli byste dostat aktuální údaje: http://www.datoveschranky.info/clanek/102/ pilot je uz mrtvy. Nove wsdl odkazuju na isds.czechpoint.cz/ Polozim ale otazku inak: existuje nejaky web services framework, ktoremu by som ako cvicena opica podhodil setUsername() a setPassword() a mohol pracovat s https username/password zabezpecenymi webservices? - PS, alebo Offtopic dezorientovaneho zaciatocnika: S webservices sa zoznamujem len kratko (rok), ale uz som nacital hrozne vela textu a zacinam z toho nadobudat pocit, ze su uplne nafigu a bol by som rad, keby ma niekto vyviedol z omylu a pripadne ma nasmeroval. Pride mi totiz, ze na to, aby to clovek mohol pouzit na netrivialne ulohy (posielat nieco ine ako stringy a inty, komunikovat cez https, zabezpecit ws na login/password) sa strasne nadre a musi sa naucit strasnu furu hackov (vid. dokumentacia k jax-ws, kde nie je neobvykle narazit na rucne generovanie soap sprav), aby sa to vobec dalo pouzit. O prenose vacsieho objemu dat ani nehovorim, to som uz davno poriesil servletmi s vlastnym mechanizmom autorizacie. Tak nejak mi medzi prsty unika, k comu mi to cele je, pretoze cas straveny vyvojom programu pouzivajuceho zabezpecenu webservice akceptujucu povedzme hashmapy sa zacina rovnat casu napisania nejakeho tcpip daemona from scratch. Ja som sa dostal viac-menej do takeho stavu, ze vacsina mojich public services bezi na http, maju vstupny parameter String a vystupny String, pricom v tych stringoch su S/MIME zasifrovane spravy nesuce vsetko potrebne. Som asi prilis ne-enterprise, alebo len proste trpim znizenou schopnostou chapania... (?) -- Dusan
Re: datove schranky - webservices
On Friday 04 of September 2009 13:22:53 Radovana Straube wrote: Diky, dobry navod, do buducna sa zide. Akurat mne asi moc teraz nepomoze, pretoze tie wsdl co mam k dispozicii vobec nenaznacuju, ze by pouzivali ws-security. Celkovo mam z dostupnej dokumentacie dojem, ze datove schranky pouzivaju nejaku obskurdnu autorizacnu proxy este pred tym, nez sa vobec k slovu dostane metro. No nic, skusim na-merge-ovat nove wsdl do stareho dema, mozno to nejak uchodim. Dik Dobry den, mne sa podarilo rozchodit WebService s HTTPS username/password zalozeny na frameworku Metro az po precitani nasledovneho clanku: http://www.jroller.com/gmazza/entry/implementing_ws_security_using_username tokens Dufam, ze Vam to aspon trochu pomoze. S pozdravom Radovana Straube -- Dusan
Re: datove schranky - webservices
On Friday 04 of September 2009 12:30:46 Dusan Zatkovsky wrote: Uz som to nejak vykradanim kodu s dema uchodil. Diky za rady. -- Dusan
maven, getResourceAsStream() a webservice-client
Ahoj. Narazil som na problem s in-jar resources a neviem si rady. Vyrobim si maven quickstart projekt. V src/main/resources vytvorim subor foo.txt. Nasledne v main() zavolam: x = Main.class.getResourceAsStream(/foo.txt); Dostanem inputstream na ten foo.txt. Ten je v jar-e ulozeny priamo v roote ako /foo.txt. Problem nastane v momente, ked do toho projektu pridam webservice client. Od tohoto momentu mi getResource() vracia null. Pravdepodobne to bude suvisiet s tym, ze maven nejak preorganicuje projekt kvoli tej WS, ale ja neviem, kde mam ten foo.txt nasledne hladat. V jar-e ho vidim v /META-INF/main/java/resources/foo.txt, ale neviem, kde vidi getResource() svoj root, pretoze som skusal od /META-INF postupne uberat kazdy podadresar a na vsetko som dostal null. Tusi niekto? D. -- Dusan
log4j, vlastny appender a PropertyConfigurator
Ahoj. Mam vlastny log4j appender a ten by som rad konfiguroval cez .properties. Netusim ale, ako dostat konfiguracne premenne z .properties do mojho appenderu, pretoze mi na to nepasuje ziadna z jeho metod. Predstavujem si to nejak takto: log4j.appender.A=test.MojAppender log4j.appender.A.foo = faa log4j.appender.A.fii = fuu log4j.rootLogger=INFO, A Rad by som docielil, aby sa pri inicializacii nejak dostalo to foo:faa a fii:fuu do toho appendera. Pozeral som do zdrojakov JDBCAppender, ktory nieco take umoznuje, ale nenasiel som to tam ( resp. nasiel som setUser(), setPassword(), ale netusim, kto ich vola ). Nejaky napad? -- Dusan
Re: log4j, vlastny appender a PropertyConfigurator
On Tuesday 11 of August 2009 15:38:48 Pavel Savara wrote: Pokud si dobre pamatuju tak log4j vola set metody podle naming convention takze kdyz ve vasem appendru budete mit public void setFoo(String foo){this.foo = foo;} a public String getFoo()... No, to som z toho JDBCAppendera tak nejak vytusil, ale ked som to skusil, nefungovalo to. Teraz som to skusil znovu na cistom appenderovi a nic. -- Dusan
Re: log4j, vlastny appender a PropertyConfigurator
On Tuesday 11 of August 2009 15:52:16 Dusan Zatkovsky wrote: Attachujem zdrojaky a properties, mne pridu uplne v poriadku. -- Dusan log4j.rootLogger=INFO, S log4j.appender.S=test.SqlAppender2 log4j.appender.S.FOO = 12 log4j.appender.S.fOO = 13 log4j.appender.S.foo = 14 log4j.appender.S.FoO = 15 /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package net.docfix.logging; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; //import net.docfix.logging.SqlAppender; /** * * @author msk */ public class Main { public static void main ( String args[] ) throws ClassNotFoundException { PropertyConfigurator.configure(Main.class.getResource(/log4j.properties)); Logger.getRootLogger().info ( f); } } package test; import org.apache.log4j.Layout; import org.apache.log4j.spi.ErrorHandler; import org.apache.log4j.spi.Filter; import org.apache.log4j.spi.LoggingEvent; public class SqlAppender2 implements org.apache.log4j.Appender { private Filter filter; private ErrorHandler errorhandler; private Layout layout; private String name; private String foo; @Override public void addFilter(Filter newFilter) { this.filter = newFilter; } @Override public Filter getFilter() { return filter; } @Override public void clearFilters() { } @Override public void close() { } @Override public void doAppend(LoggingEvent event) { System.out.println(event.toString()); } @Override public String getName() { return name; } @Override public void setErrorHandler(ErrorHandler errorHandler) { this.errorhandler = errorHandler; } @Override public ErrorHandler getErrorHandler() { return errorhandler; } @Override public void setLayout(Layout layout) { this.layout = layout; } @Override public Layout getLayout() { return this.layout; } @Override public void setName(String name) { this.name = name; } @Override public boolean requiresLayout() { return false; } public void setFoo(String s) { System.out.println(setFoo()); this.foo = s; } public String getFoo() { System.out.println(getFoo()); return this.foo; } }
Re: log4j, vlastny appender a PropertyConfigurator
On Tuesday 11 of August 2009 16:03:37 Ján Valkovič wrote: Zdravim, toto nepomoze? http://www.javaworld.com/javaworld/jw-12-2004/jw-1220-toolbox.html?page=5 AHA! AppenderSkeleton! :) Ja implementujem Appender interface, o tomto som vobec nevedel. Diky 100x -- Dusan
maven - distribucia hotovej aplikacie
Ahoj. Zapasim s Maven-om a neviem sa dopatrat jednej veci. Preklopil som par mojich projektov z ant-u ( vyklikaneho v netbeans ) do mavenu. Pokial slo o -EE projekty, vsetko je ok. Problem mam so SE projektami - nedokazem prist na to, ako vyrobit spustitelny .jar. Povodny ant-ovy projekt vyrobil myapp.jar a do podadresara ./lib nakopiroval vsetky zavislosti. Maven vyrobi myapp.jar, ktory: a. nema Main-Class atribut v manifeste napriek tomu, ze som ho v netbeans vyslovene uviedol. Musim to hackovat rucne v pom.xml. Asi bug v netbeans... b. nepribali ziadne jar-y, na ktorych projekt zavisi, takze vysledok je nespustitelny. Skusal som menit scope z compile na runtime, ale potom nesiel projekt zkompilovat. V maven FAQ som na nic zaujimave nenarazil. Pritom mi to pripada ako absolutne elementarna poziadavka na build system, mozno neviem hladat. Jedine co som nasiel, je nejaky externy onejar-maven-plugin, ale pride mi zvlastne, ze by to aj bez neho nechodilo ad-hoc. Kto poradi? Dik -- Dusan
Re: maven - distribucia hotovej aplikacie
On Monday 03 of August 2009 10:26:10 Petr Prochazka wrote: Pravdupovediac sa mi najviac paci moznost c.4 - onejar-maven-plugin. Skoda akurat, ze v netbeans je toto absolutne nedotiahnute a clovek to musi aj tak vsetko copy-pastovat do pom.xml rucne z roznych webov... Na tie vymenovane moznosti sa ale pozriem, moze sa to hodit v inych pripadoch, diky. V tuto chvili me napadaji asi 3 moznosti: 1. V pom.xml musis nastavit (viz popis zdehttp://maven.apache.org/shared/maven-archiver/index.html 2. Nastavit jar plugin (viz bod. 1) a pouzit assembly 3. Existuje appassemblerhttp://mojo.codehaus.org/appassembler/appassembler-maven-plugi -- Dusan
Re: maven - distribucia hotovej aplikacie
On Monday 03 of August 2009 14:14:22 Petr Prochazka wrote: Pochopil si to uplne spravne. Mne sa ale este viac paci ten onejar-plugin, pretoze tam odpada podadresar ./lib a vsetko je zabalene v jednom jar-e vratane zavislosti. Akurat ze si to clovek musi na-copy-paste-ovat rucne v kazdom projekte, v netbeans na to neexistuje/nenasiel som klikatkova podpora. Ale ta imho neexistuje ani pre assembly plugin. Asi jsem to pochopil spatne, myslel jsem, ze ant skript vygeneruje jar a adresar lib a vytvori Class-Path property do manifestu... -- Dusan
Re: maven - import jar-ov do lokalneho repository
On Thursday 30 of July 2009 17:36:53 Petr Prochazka wrote: Diky -- Dusan
maven - import jar-ov do lokalneho repository
Ahoj. Zvazujem migraciu projektov na maven. Musim ale pred tym poriesit par detailov, aby som si nerobil zbytocnu pracu. Potrebujem mavenu zviditelnit nejake jar-y, ktore mam lokalne na disku. Konkretny priklad: qtjambi-4.5.0_01.jar qtjambi-linux64-gcc-4.5.0_01.jar qtjambi-win32-msvc2005-4.5.0_01.jar Situacia je o to zlozitejsia, ze moja aplikacia potrebuje (qtjambi-4.5.0_01.jar + qtjambi-linux64-gcc-4.5.0_01.jar) na linux-e a (qtjambi-4.5.0_01.jar + qtjambi-win32-msvc2005-4.5.0_01.jar) na win32. Ja mam taku naivnu predstavu, ze projekt by pouzival akesi qt-jambi, ktore by na win bolo prvou podmnozinou a na linuxe druhou. Pokial by som sa tohoto vzdal, mohol by som pouzivat qtjambi-linux a qtjambi-windows ( osetrim si scriptom zavislosti v pom.xml ), oba by zaviseli na qtjambi-4.5.0_01.jar, ale do toho uz vstupuju dependencies, ktore prostym mvn install:install-file asi nedocielim. Predpokladam, ze cestou bude vytvorenie nejakeho maven projektu, ale neviem ako ho donutit za dist nepovazovat vysledok kompilacie, ale iny jar, co mu vnutim... Dik -- Dusan
Re: maven - import jar-ov do lokalneho repository
On Thursday 30 of July 2009 17:14:11 Dusan Zatkovsky wrote: Klasika. Ruky rychlejsie ako mozog. ... zavislosti by asi sli teoreticky poriesit obycajnym prazdnym maven projektom, ktory sam by mal zavislost na qtjambi-4.5.0_01.jar a qtjambi-linux64-gcc-4.5.0_01.jar ... Stale to ale neriesi platformovu zavislost tych jarov. Pokial by som sa tohoto vzdal, mohol by som pouzivat qtjambi-linux a qtjambi-windows ( osetrim si scriptom zavislosti v pom.xml ), oba by zaviseli na qtjambi-4.5.0_01.jar, ale do toho uz vstupuju dependencies, ktore prostym mvn install:install-file asi nedocielim. Predpokladam, ze cestou bude vytvorenie nejakeho maven projektu, ale neviem ako ho donutit za dist nepovazovat vysledok kompilacie, ale iny jar, co mu vnutim... Dik -- Dusan
Re: fronta pro zpracování dlouhých udílosti ve webovém kontejneru
On Tuesday 28 of July 2009 09:16:24 Tomáš Procházka wrote: Tady jde právě o to použít vlastní SMTP server napsaný v Javě, emaily se tedy již nebudou předávat na žádný další SMTP server, ale přímo doručovat do schránek příjemců, takže server a tím i naše aplikace bude mít přímo informaci o tom, zda se doručení povedlo nebo nikoliv. Alespoň takto to chápu já. Takze sa jedna len o dorucovanie v ramci jednej organizacie,firmy a tak podobne? Neni potom smtp zbytocny overkill a neslo by radsej pouzit nejaku formu firemneho intranetu? -- Dusan
Re: fronta pro zpracování dlouhých udílosti ve webovém kontejneru
On Tuesday 28 of July 2009 09:33:27 Dusan Zatkovsky wrote: Takze sa jedna len o dorucovanie v ramci jednej organizacie,firmy a tak Mimo to ma napadlo, ze to by ten Vas mailserver musel zaroven poskytovat aj pop3(s)/imap(s) a to uz je brutalny overkill. -- Dusan
SIGTERM v Jave
Ahoj. Mam dost vazny problem so zachytavanim signalov v jave. V konzolovej aplikacii potrebujem garantovat, ze sa mi vykona urcity blok kodu. Akekolvek prerusenie vo vnutre tohoto bloku je povazovane za fatalnu chybu, ktoru treba potom rucne riesit. Tento blok sa vykonava cyklicky. Ja teraz potrebujem mat moznost tu aplikaciu rucne zastavit pomocou ctrl+c. Problem je, ze aj nasledovny testovaci kod na ctrl+c zvysoka kasle a aplikacia sa (s)proste zastavi. Pritom pomocou kill -TERM $pidProcesu sa aplikacia chova tak, ako ma ( vypise text a pokracuje dalej ). Ako donutim jvm, aby sa spravala tak ako sa patri? Diky. class MyHandler implements SignalHandler { public void handle(Signal s) { System.out.println(catch signal + s.toString()); } } class Main { public static void main(String[] args) { MyHandler h = new MyHandler(); Signal.handle(new Signal(TERM), h); for (int i = 0; i 100; i++) { System.out.println(sleep + i); try { Thread.sleep(1000); } catch (InterruptedException e) { System.out.println(exc); } } System.out.println(end); } } -- Dusan
Re: SIGTERM v Jave
Pokial sa nemylim, ctrl+c standardne zasiela SIGINT, nie SIGTERM Ano, je to tak, ospravedlnujem sa. Takze kill -SIGINT $pid urobi presne to, co CTRL+C. Signal handler sa odignoruje. 2009/7/23 Dusan Zatkovsky msk.c...@gmail.com: Ahoj. Mam dost vazny problem so zachytavanim signalov v jave. V konzolovej aplikacii potrebujem garantovat, ze sa mi vykona urcity blok kodu. Akekolvek prerusenie vo vnutre tohoto bloku je povazovane za fatalnu chybu, ktoru treba potom rucne riesit. Tento blok sa vykonava cyklicky. Ja teraz potrebujem mat moznost tu aplikaciu rucne zastavit pomocou ctrl+c. Problem je, ze aj nasledovny testovaci kod na ctrl+c zvysoka kasle a aplikacia sa (s)proste zastavi. Pritom pomocou kill -TERM $pidProcesu sa aplikacia chova tak, ako ma ( vypise text a pokracuje dalej ). Ako donutim jvm, aby sa spravala tak ako sa patri? Diky. class MyHandler implements SignalHandler { public void handle(Signal s) { System.out.println(catch signal + s.toString()); } } class Main { public static void main(String[] args) { MyHandler h = new MyHandler(); Signal.handle(new Signal(TERM), h); for (int i = 0; i 100; i++) { System.out.println(sleep + i); try { Thread.sleep(1000); } catch (InterruptedException e) { System.out.println(exc); } } System.out.println(end); } } -- Dusan -- Dusan
Re: SIGTERM v Jave
On Thursday 23 of July 2009 10:35:54 Jozef Sevcik wrote: Samozrejme ze nie, lebo som k Pycha predchadza pad. Dakujem a ospravedlnujem sa. predpokladam ze v kode ste zmenil new Signal(INT), a handler sa aj tak nevyvola ? -- Dusan
jaxbm v javase aplikacii
Ahoj. Zacinam sa zoznamovat s jaxb. Vytvoril som si v Netbeans standardnu java aplikaciu, pridal library jaxb, vytvoril novy binding a vyrobil primitivnu schemu. K tomu main() ktora vyrobi v pamati par objektov a nasledne pomocou marshaller-u z toho spravi xml. Pokial to pustim z konzoly pomocou java -jar mojaapp.jar, app zbehne a vypise sa mi xml na stdout. Pri spusteni projektu v Netbeans mi to ale hodi exception: xception in thread main java.lang.NoClassDefFoundError: org/netbeans/xml/schema/newxmlschema/TestingElement at jaxb1.Main.main(Main.java:25) ... co je rootovsky element xml-ka. Zabudol som nieco nastavit, alebo mam nieco rozhasene s Netbeans, ze mi projekt nejde pustit klasickou cestou? Vsimol som si, ze sa mi v konfiguracii projektu pridalo -Djava.endorsed.dirs=${jaxbwiz.endorsed.dirs}, ktore ukazuje do instalacie netbeans (/home/msk/opt/netbeans-6.5.1/platform9/../ide9/modules/ext/jaxb/api). Dik. -- Dusan
Re: jaxbm v javase aplikacii
Tak po upgrade na 6.7 problem zmizol. Podla bugzilly to vyzera na znamy bug v 6.5. -- Dusan