Hallo Zusammen
ich habe einen Softwarecore, welcher anhand eines XML's bestimmte Module laden soll. Danach versucht er, diese gegenseitig zu "linken". Auf alle Fälle ruft er setter von Modulen auf, bei welchen er andere Module übergibt. Dies sieht folgendermassen aus:
Nun, wenn ich in Eclipse alle Packages im gleichen Projekt habe, funktioniert das auch wunderbar, wenn ich das Package aber in ein anderes Projekt nehme (und der System CL somit die zu ladenden Klassen nicht sieht) krieg ich beim invoke() eine nichtssagende Exception:
Kennt jemand die Lösung zum Problem?
Gruss, faetzminator
PS: ich verwende
java version "1.5.0"
gij (GNU libgcj) version 4.3.2
ich habe einen Softwarecore, welcher anhand eines XML's bestimmte Module laden soll. Danach versucht er, diese gegenseitig zu "linken". Auf alle Fälle ruft er setter von Modulen auf, bei welchen er andere Module übergibt. Dies sieht folgendermassen aus:
Code:
private void linkModules(ArrayList<ModuleInterface> modules) throws Exception {
for (int i = 0; i < modules.size(); i++) {
ModuleInterface module = modules.get(i);
String name = getSetterMethodName(module.getClass().getSimpleName());
for (int j = 0; j < modules.size(); j++) {
ModuleInterface mod = modules.get(j);
// TODO implement better way - faetzminator
try {
Method meth = mod.getClass().getMethod(name, new Class<?>[] {module.getClass()});
meth.invoke(mod, new Object[] {module});
System.out.println("invoked " + mod.getClass().getName() + "." + name + "(" + module.getClass().getName() + ")");
} catch (NoSuchMethodException e) {
// ignore
} catch (IllegalAccessException e) {
// ignore
} catch (InvocationTargetException e) {
// ignore
}
}
}
}
Nun, wenn ich in Eclipse alle Packages im gleichen Projekt habe, funktioniert das auch wunderbar, wenn ich das Package aber in ein anderes Projekt nehme (und der System CL somit die zu ladenden Klassen nicht sieht) krieg ich beim invoke() eine nichtssagende Exception:
Code:
java.lang.IllegalArgumentException
at java.lang.reflect.Method.invoke(libgcj.so.90)
at ch.faetzminator.ircwaynebot.core.ModuleHandler.linkModules(ModuleHandler.java:74)
at ch.faetzminator.ircwaynebot.core.ModuleHandler.loadModules(ModuleHandler.java:46)
at ch.faetzminator.ircwaynebot.core.IrcWayneBot.start(IrcWayneBot.java:40)
at ch.faetzminator.ircwaynebot.core.IrcWayneBot.main(IrcWayneBot.java:136)
Kennt jemand die Lösung zum Problem?
Gruss, faetzminator
PS: ich verwende
java version "1.5.0"
gij (GNU libgcj) version 4.3.2