![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Martin Eisengardt Registriert seit: 30.03.2006 Ort: Pfinztal
Beiträge: 355
|
Mal eine Frage, bevor ich nun in aller Ausführlichkeit mein recht spezielles Problem schildere: Kennt sich einer mit ClassLoadern aus? Stichworte: Dynamisches Austauschen von Klassen zur Laufzeit, also quasi ohne Neustart neue Module (JARs) einbinden oder auch alte durch eine neue Version zu ersetzen? Das Problem ist leider zu komplex, ums mal in 2 Sätze zu bringen und ich mache mir nur die Mühe, wenn sich hier einer auf dem Gebiet auskennt
__________________ Open Sourcing the Online Gaming Universe PHP/SQL/Java/C++/Assembler. Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html |
| | |
| | Nach oben #3 |
| Martin Eisengardt Registriert seit: 30.03.2006 Ort: Pfinztal
Beiträge: 355
|
Nun denn. Ich habe eine Basis-Anwendung. Der will ich zur Laufzeit dynamisch Module einhängen und aushängen, oder auch mal eine neue Version laden. Alles ohne die Anwendung selbst neu zu starten. Nun habe ich eine Klasse A in der Basisanwendung. Diese Klasse soll ein Objekt deserialisieren, was in Modul "A" hängt. Wie muss dann der Class Loader aussehen, damit ich auch die Klasse erreiche? Problem ist ja, dass der VM-ClassLoader nichts von seinem Glück weiss und auch folglich meine Basis-Anwendung die Klasse so ohne weiteres nie erreichen kann. Hinzu kommt, dass es sich bei der skizzierten Anwendung um einen Application Server handelt. Als solcher startet er mehrere Anwendung parallel (wenn man das will). Ich muss also, wenn Anwendung 1 gemeint ist, die Klasse "foo" unter Umständen aus einem ganz anderen Jar holen als wenn Anwendung 2 gemeint ist. Ich kann also nicht einfach einen ClassLoader bauen, der alles kennt, da ich nicht will, dass Anwendung 1 Seiteneffekte auf Anwendung 2 hat.
__________________ Open Sourcing the Online Gaming Universe PHP/SQL/Java/C++/Assembler. Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html |
| | |
| | Nach oben #4 |
| Projektleiter Registriert seit: 30.11.2005 Ort: Bottrop
Beiträge: 1.110
|
Okay. Das ist unangenehm. Im Prinzip wirst du wohl oder übel Modul A zum deserialisieren nutzen müssen, sonst ist die Klasse unbekannt. Es gibt also im Grunde zwei Möglichkeiten: a) Du legst den ClassLoader von Modul A als Parent des ClassLoaders der Basisanwendung fest (allerdings sind dann die Termina ziemlich durcheinander) b) Du fragst der Reihe nach alle Module, ob die dir die Klasse deserialisieren können (ServiceLocator-Pattern). Das könnte unter Umständen über UniqueID oder wie das war gelöst werden - also die Identifizierung und Versionisierung der Klasse. Schön finde ich keine der Lösungen, aber was besseres fällt mir spontan auch nicht ein. |
| | |
| | Nach oben #5 |
| Martin Eisengardt Registriert seit: 30.03.2006 Ort: Pfinztal
Beiträge: 355
|
Ich habe das mal in dem entsprechenden Sun-Forum gepostet: http://www.projectdarkstar.com/index...99&topic=353.0 Die Aussage von dem Sun-Entwickler, dass er denk, dass es auf bizarre Art und Weise schief gehen wird, spornt mich jetzt nur noch mehr an
__________________ Open Sourcing the Online Gaming Universe PHP/SQL/Java/C++/Assembler. Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Probleme mit Strato / Arcor? | MrNiceGuy | Plauderecke | 15 | 28.12.2006 23:35 |
| Caching mittels dbm-Dateien, Probleme mit dba_popen() | Ben | PHP-Programmierung | 4 | 27.07.2006 13:23 |
| Probleme mit Anhängen | Ben | Archiv | 0 | 16.06.2006 16:13 |
| Layout Probleme | VipViper2000 | Desktop-Applikationen und Grafik | 8 | 13.09.2005 22:35 |
| Probleme und Zeitdruck: Kunden-DB (Vector) | mubbelbubbel82 | Allgemeine Java-Programmierung | 3 | 14.07.2005 23:43 |