![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Erfahrener Benutzer Registriert seit: 28.08.2004 Ort: konstanz am bodensee
Beiträge: 190
|
moin, wie der titel schon sagt habe ich ein prob mit der platoons plugin engine und externen bibiliotheken. und zwar in meinem fall habe ich versucht in einem plugin mir eine Logger (log4j) zu besorgen. das log4j jar liegt im klassenpfad aber ich bekomme trotzdem eine ClassNotFound Exception. das ist ein durchaus logisches verhalten, da die plugins ja nur ihre eigenen klassen und die der dependencies kennen. heißt das nun das ich jede bibiliothek die in einem plugin genutzt werden soll in ein plugin umwandeln und es in denen die es brauchen eine dependencie einfügen soll, oder lässt sich das auch mit weniger aufwand lösen? |
| | |
| | Nach oben #2 |
| Projektleiter Registriert seit: 30.11.2005 Ort: Bottrop
Beiträge: 1.129
|
Die Plugins kennen ihre eigenen, die ihrer Abhängigkeiten und die Klassen aus dem Bootstrap-Classpath. Jedenfalls ist das bei mir so. Bist du sicher, dass das alles seine Ordnung hat, wie du das da gemacht hast? |
| | |
| | Nach oben #3 |
| Erfahrener Benutzer Registriert seit: 28.08.2004 Ort: konstanz am bodensee
Beiträge: 190
|
also auf den ersten blick scheint alles in ordnung zu sein. ich bekomme kurz bevor der exception noch eine log nachricht, die über eine brückenklasse von dem platoon ILogger an einen log4j logger übergeben wird, also ist log4j auf jeden im klassenpfad. Code: DEBUG PluginManager ( PluginManagerLogger.java:21) - Unable to find class in Plugin "Test Plugin 1": org.apache.log4j.Logger java.lang.ClassNotFoundException: org.apache.log4j.Logger at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at org.platonos.pluginengine.PluginClassLoader.findClass(PluginClassLoader.java:241) at org.platonos.pluginengine.PluginClassLoader.loadClassFromClassPath(PluginClassLoader.java:184) at... Code: public class TestPluginLifecycle extends PluginLifecycle{
@Override
protected void start() {
Logger log = Logger.getLogger(TestPluginLifecycle.class);
}
@Override
protected void stop() {
// log.info("Testplugin stopped!");
}
}
Code: protected void start() {
try{ TestPluginLifecycle.class.getClassLoader().loadClass("org.apache.log4j.Logger");
} catch(Exception e){
e.printStackTrace();
}
}
Code: protected void start() {
try{ TestPluginLifecycle.class.getClassLoader().getSystemClassLoader().loadClass("org.apache.log4j.Logger");
} catch(Exception e){
e.printStackTrace();
}
}
auch klassen aus meinem hauptprogramm welches die pluginengine startet kann ich nicht laden. aber klasses aus dem plugin selbst lassen sich laden. |
| | |
| | Nach oben #6 |
| Erfahrener Benutzer Registriert seit: 28.08.2004 Ort: konstanz am bodensee
Beiträge: 190
|
problem gelößt... hab mich wohl von der exception zu sehr irritieren lassen. wenn eine klasse im plugin nicht gefunden wird gibt es eine debug log nachricht Code: DEBUG PluginManager ( PluginManager.java:40) - Unable to find class in Plugin "Plugin 1": org.apache.log4j.Logger da ich alle logs mit throwables direkt an log4j weiter gegeben habe hat log4j den stack trace ausgelößt... Code: DEBUG PluginManager ( PluginManager.java:40) - Found class in parent loader: org.apache.log4j.Logger also war es nicht wirklich ein fehler... |
| | |
![]() |
| 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 |
| [ZendFramework] Weiterleiten aus einem Plugin | robo47 | PEAR, PECL und Frameworks | 8 | 12.09.2007 11:21 |
| Eclipse Plugin - Search Preference Page | Ben | Eclipse | 5 | 06.02.2007 16:20 |
| plugin engine howto | beny_mcde | Allgemeine Java-Programmierung | 8 | 29.05.2006 23:16 |