ako to myslite? momentalne mam 1 ako hlavnu aplikaciu a dalsi ako modul tlacovej zostavy, mysleli ste rozdelit modul na 2?
ya > ... udělat DVA jar soubory? > > Petr Zajíc > > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On > Behalf Of Ján Valkovič > Sent: Tuesday, June 12, 2007 2:41 PM > To: Java > Subject: ClassCastException vs ClassLoader > > Ahoj, > mam Swing aplikaciu a potrebujem z nej tlacit, vyriesil som to tak, ze > kazda tlacova zostava bude JPanel(JXPanel) a bude zabaleny v jar, pri > nacitavani sa zobrazi v tlacovom dialogu, jar bude mat v sebe samotny > report, potrebne kniznice a konfiguracny panel (datum od-do, zakaznik a > pod., kvoli vyfiltrovaniu zaznamov, ktore budem tlacit), modul by som > chcel urobit natolko samostatny, aby sa vedel pustit a tlacit, ak by tam > bol main. Cize ked treba nova zostava, tak urobim modul, nakopirujem do > adreara reports a pridam ju do suboru reports.xml a to je cele, pri > dalsom otvoreni tlacoveho formulara sa objavi v zozname reportov. Hlavny > program o tlaci nebude mat ani sajnu, celu tlac bude robit modul. Tym > padom dokazem urobit lubovolnu tlacovu zostavu, pouzit reporting engine > a nemusim pri tom robit zasahy do hlavneho programu (som si isty, ze po > case pride poziadavka, ktorej sa nebude dat vyhoviet ani s touto > architekturou, ale aspon to oddialim :-) ) > V hlavnej aplikacii pouzivam URLClassLoader a ked to pustam z eclipse, > tak sa modul nacita, ked urobim jar (pouzivam Fat JAR), tak pri > nacitavani modulu zahlasi toto: > > Message: > java.lang.ClassCastException: > org.jdesktop.swingx.plaf.PainterUIResource cannot be cast to > org.jdesktop.swingx.painter.Painter > Level: > SEVERE > Stack Trace: > org.jdesktop.swingx.plaf.PainterUIResource cannot be cast to > org.jdesktop.swingx.painter.Painter > > org.jdesktop.swingx.plaf.basic.BasicTitledPanelUI.installUI(BasicTitledPanel > UI.java:123) > javax.swing.JComponent.setUI(Unknown Source) > javax.swing.JPanel.setUI(Unknown Source) > org.jdesktop.swingx.JXTitledPanel.setUI(JXTitledPanel.java:149) > org.jdesktop.swingx.JXTitledPanel.updateUI(JXTitledPanel.java:176) > javax.swing.JPanel.<init>(Unknown Source) > javax.swing.JPanel.<init>(Unknown Source) > javax.swing.JPanel.<init>(Unknown Source) > org.jdesktop.swingx.JXPanel.<init>(JXPanel.java:83) > org.jdesktop.swingx.JXTitledPanel.<init>(JXTitledPanel.java:121) > org.jdesktop.swingx.JXTitledPanel.<init>(JXTitledPanel.java:111) > org.jdesktop.swingx.JXTitledPanel.<init>(JXTitledPanel.java:101) > > org.eltik.planovanie.reports.prehlad1.ReportPanel.getPanelObdobie(ReportPane > l.java:183) > > org.eltik.planovanie.reports.prehlad1.ReportPanel.getPanelFilter(ReportPanel > .java:126) > > org.eltik.planovanie.reports.prehlad1.ReportPanel.initialize(ReportPanel.jav > a:90) > > org.eltik.planovanie.reports.prehlad1.ReportPanel.<init>(ReportPanel.java:79 > ) > > org.eltik.planovanie.reports.prehlad1.ReportMain.getReport(ReportMain.java:5 > 1) > sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > java.lang.reflect.Method.invoke(Unknown Source) > org.eltik.planovanie.PrintDialog$4.run(PrintDialog.java:329) > java.lang.Thread.run(Unknown Source) > > org.jdesktop.swingx.painter.Painter je interface a > org.jdesktop.swingx.plaf.PainterUIResource ho implementuje > > Problem moze byt v tom, ze Fat JAR pouziva One-JAR ( > http://one-jar.sourceforge.net/ ) a ten ma vlastny ClassLoader a na > nacitanie modulu pouzivam URLClassLoader. Ked na nacitanie modulu > pouzijem JarClassLoader z One-JAR, tak sa neviem dostat ku xml, v ktorom > je report (jFreeReport), lebo modul sam seba nevidi, aj ked vsetko > funguje :-) S Javou nemam este vela skusenosti, takze mozno nieco > robim zle (dufam, to sa da napravit, ak nie je problem medzi stolickou a > klavesnicou, tak sa to bude riesit tazsie :-) ) > Jedno z rieseni je urobit workaround, modul otvori jar, z ktoreho je > spusteny, vykopiruje von co potrebuje, pouzije a ak sa nic nestane, tak > po sebe aj uprace, ale toto riesenie mi pripada dost pritiahnute za > vlasy :-) > Vedel by mi niekto nieco poradit alebo navrhnut a prijimam ak kritiku, vdaka > > ya > > > > > > >
