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
>
>
>
>
>
>
>   


Odpovedet emailem