[Javalist] Classloader anonymous gond

istvan.ketler at lhsystems.com istvan.ketler at lhsystems.com
2013. Ápr. 15., H, 18:47:00 CEST


Ezt a metódust hívom meg, és ennek a new ActionListener során hasal el:

       public void init() {
              setLayout(new BorderLayout());
              add(new JLabel("Fix label"), BorderLayout.NORTH);
              JButton button = new JButton("Add label");
              button.addActionListener(
                     new ActionListener() {
                           /**
                           * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
                           */
                           @Override
                           public void actionPerformed(final ActionEvent $e) {
                                  add(new JLabel("Dynamically added label"), BorderLayout.CENTER);
                                  revalidate();
                                  repaint();
                           }
                     }
              );
              add(button, BorderLayout.SOUTH);
       }

A meghívás a Jide docking és action framework-öt is használva így történik:

       public void actionPerformed(final ActionEvent $e) {
              LegEditorPlugin.getInstance().getLogger().logAction("Start legeditor action initiated.");
              LegEditorPlugin.getInstance().getViewController().setVisible(true);
       }

A ViewController mozgósítja a DockableFrame setVisible metódusát, amiben ez van:

                     synchronized (_initCalled) {
                           if (!_initCalled) {
                                  _associatedView.init();
                                  _initCalled = true;
                           }
                     }

A kivétel pedig azért jön, mert nincs betöltve a myClassName$1 osztály (az anonymous class), mire meghívja a classloader-emet, és ennek a findClass metódusa szomorodik el teljes joggal, hiszen ezt az osztályt csak a befogadó osztály példányával együtt lehetne példányosítani.

java.lang.reflect.InvocationTargetException
Caused by: java.lang.NoClassDefFoundError: com/lsyh/nlpgui/legeditor/view/LegEditorView$1
Caused by: java.lang.ClassNotFoundException: com.lsyh.nlpgui.legeditor.view.LegEditorView$1

Amikor a befogadó osztályt betöltöm, esetleg akkor kéne betölteni a benne lévő anonymous osztályokat is, de azt hogyan? Ugorjak neki a fájlrendszernek, keressem a $N végűeket?. Látszólag az URLClassLoader és felmenői semmi ilyesmit nem tesznek.

Üdv,

Iván
______________________________
István Ketler
Senior Consultant

Lufthansa Systems Hungária Kft.
GUI Service Center
Mobile Solutions Team, Development Center Danube
Neumann János u. 1/e
1117 Budapest
Hungary
Phone: +36 1 887-2815
Fax: +36 1 887-0577
Mobile: +36 30 600-4936
E-mail: istvan.ketler at LHsystems.com<mailto:istvan.ketler at LHsystems.com>
www.LHsystems.com<http://www.lhsystems.com/>

From: javalist-bounces at lists.javaforum.hu [mailto:javalist-bounces at lists.javaforum.hu] On Behalf Of Peter Verhas
Sent: Monday, April 15, 2013 5:30 PM
To: Java lista
Subject: Re: [Javalist] Classloader anonymous gond

Ha anonymous akkor hol adod meg a nevet ami nincs es mit?

On Monday, April 15, 2013, wrote:
Anonymous
Sent from my cellular

From: Peter Verhas [mailto:peter at verhas.com<javascript:_e(%7b%7d,%20'cvml',%20'peter at verhas.com');>]
Sent: Monday, April 15, 2013 05:22 PM
To: Java lista <javalist at lists.javaforum.hu<javascript:_e(%7b%7d,%20'cvml',%20'javalist at lists.javaforum.hu');>>
Subject: Re: [Javalist] Classloader anonymous gond

Abstract vagy anonymous?

On Monday, April 15, 2013, wrote:
Nem, a hivott metodus definial egy jbuttont amihez hozzaadok egy action lostenert

Ha a listener egy betoltheto osztaly akkor muxik es ha kell peldanyosit

Ha a listener egy anonymous osztaly akkor elhasal, nem tudja betolteni a name$1 osztalyt

Sent from my cellular

From: Peter Verhas [mailto:peter at verhas.com]
Sent: Monday, April 15, 2013 05:14 PM
To: Java lista <javalist at lists.javaforum.hu<mailto:javalist at lists.javaforum.hu>>
Subject: Re: [Javalist] Classloader anonymous gond

És ha jól értem akkor hasal el, amikor a metódus egy abstract osztályban van definiálva, amelyiket kiterjesztettél, és a kiterjesztett nem abstract osztályt adtad meg az XML-ben, mint példányosítandó osztályt, meg a metódust, amit az abstract-ból örökölt.

--
Dipl. Ing. Peter Verhas
peter at verhas.com<mailto:peter at verhas.com>
+41791542095
skype: verhas





On 2013.04.15., at 16:58, <istvan.ketler at lhsystems.com<mailto:istvan.ketler at lhsystems.com>> wrote:


Context

Frameworkot irok

Dinamikusan szedi ossze a plugineket

Xml-ben action-oket definial classname es metodusname megadasaval

Feluletre gombokat teszek ha megnyomjak akkor a korabban peldanyositott osztaly korabban letrehozott es eltarolt Method-jara adok ki egy invoke-ot

Thx
Ivan
Sent from my cellular



Sitz der Gesellschaft / Corporate Headquarters: Lufthansa Systems Hungaria Kft, Budapest, Fovarosi Birosag 01-09-463417
Geschaeftsfuehrung / Management Board: Peter Sipos

From: KETLER, ISTVAN
Sent: Monday, April 15, 2013 04:51 PM
To: 'javalist at lists.javaforum.hu' <javalist at lists.javaforum.hu<mailto:javalist at lists.javaforum.hu>>
Subject: Re: [Javalist] Classloader anonymous gond

Egy listenert allitok be egy abban a metodusban deklaralt buttonhoz

Sent from my cellular



--
Verhás Péter
ügyvezető
Verhás & Verhás Szoftver Manufaktúra Kft.
peter at verhas.com<mailto:peter at verhas.com>
t: +36(30)9306805
skype: verhas

 
Sitz der Gesellschaft / Corporate Headquarters: Lufthansa Systems Hungaria Kft, Budapest, Fovarosi Birosag 01-09-463417
Geschaeftsfuehrung / Management Board: Peter Sipos


--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: <http://lists.javaforum.hu/pipermail/javalist/attachments/20130415/298f4377/attachment.html>


További információk a(z) Javalist levelezőlistáról