Problem mit Struts
Stareagle
- java
Hallo zusammen,
ich habe ein für mich sehr merkwürdiges Problem.
Ich habe eine Klasse. Wenn ich diese in einem "normalen" Java-Programm aufrufe, tut sie was sie soll (Erzeugen von Objekten anderer Klassen, Werte in ihre Attribute schreiben etc.). Wenn ich dieselbe Klasse mit den selben Parametern jedoch in einer Action-Klasse aufrufe funktioniert rein garnichts.
Das Problem schein ein Aufruf einer statischen Methode aus einer anderen Klasse zu sein. Diese sollte mir einen Vektor mit Objekten einer weiteren Klasse zurückgeben. Diese Objekte verarbeite ich dann weiter...
Jemand eine Idee woran das liegen kann. Der Quellcode ist leider sehr komplex (es sind insgesamt so ca. 10 Klassen beteiligt, wenn man über alle Ecken geht), daher hab ich erst mal davon abgesehen den Code hier zu posten.
Gruß
Stareagle
Servus Stareagle!
Wenn ich dieselbe Klasse mit den selben Parametern jedoch in einer Action-Klasse aufrufe funktioniert rein garnichts.
Du rufst die Klasse auf? Was genau meinst Du?
Das Problem schein ein Aufruf einer statischen Methode aus einer anderen Klasse zu sein. Diese sollte mir einen Vektor mit Objekten einer weiteren Klasse zurückgeben. Diese Objekte verarbeite ich dann weiter...
Was sagt der Debugger? Sind die erwarteten Objekte vorhanden? Vielleicht ist es am Ende auch einfach eine nicht behandelte Exception?
Jemand eine Idee woran das liegen kann. Der Quellcode ist leider sehr komplex (es sind insgesamt so ca. 10 Klassen beteiligt, wenn man über alle Ecken geht), daher hab ich erst mal davon abgesehen den Code hier zu posten.
Aber etas genauer müsste es dann doch sein ;~)
funktioniert rein garnichts
Zum Beispiel hier...
Freundliche Grüße
Stefano Albrecht
Moin,
hat sich geklärt. Mein Tomcat nutzt nicht den System-Classpath, wodurch er eine Klasse, die von der aufgerufenen Klasse verwendet wird, nicht finden konnte. Jetzt funktioniert alles wie erwartet.
Kurz noch zum Hintergrund:
Die Klasse die ich aufrufe,stellt die Abstraktion einer Taxonomie dar. Diese Klasse dient als Wurzel eines Baums und enthält auch die notwendigen Aufrufe und um diesen aufzubauen. Innerhalb dieser Methode hole ich mir über eine andere Klasse, die als Datenbankschnittstelle fungiert die einzelnen Kategorien aus einer Datenbank.
Hier lag das Problem. Da Tomcat nicht den systemweiten Classpath nutzt, fand die Datenbank-Schnittstellen-Klasse die Klasse com.mysql.jdbc.Driver nicht, somit konnte sie keinen DB-Zugriff machen, und natürlich auch nichts liefern. Deshalb funktionierte es im Testprogramm ohne Tomcat auch wunderbar.
Gelöst hab ich das ganze jetzt erst mal dadurch, dass ich die notwendigen Klassen in der WEB-INF/lib-Verzeichnis der Anwendung gepackt habe.
Servus Stareagle!
hat sich geklärt. Mein Tomcat nutzt nicht den System-Classpath, wodurch er eine Klasse, die von der aufgerufenen Klasse verwendet wird, nicht finden konnte. Jetzt funktioniert alles wie erwartet.
Tomcat konnte eine Klasse nich finden?
Klingt sehr danach, dass Du hier die Exception dermaßen gnadenlos in die Ecke geprügelt hast, dass Sie Dir letzten Endes nicht mehr aufgefallen ist ;~) Dass keine Exception geworfen wurde, kann ich mir nicht vorstellen, eher, dass Du sie irgendwo im Programmcode ignoriert hast.
Freundliche Grüße
Stefano Albrecht
Tomcat konnte eine Klasse nich finden?
Klingt sehr danach, dass Du hier die Exception dermaßen gnadenlos in die Ecke geprügelt hast, dass Sie Dir letzten Endes nicht mehr aufgefallen ist
Es wird eine Exception geworfen, nur dass die DB-Klasse sie nicht durchreicht, und Logging ist (noch) nicht eingebaut. Die DB-Klasse stammt übrigens nicht von mir, ich habe nur das Vergnügen sie benutzen zu müssen.
Ich glaube auch fast die Probleme die ich (bzw. meine Gruppe) haben liegen daran, dass wir uns innerhalb ein relativ kurzen Zeit in die Programmierung von Webanwendungen mit Java einarbeiten mußten, und dass neben vielen anderen Veranstaltunge an der Uni...
Wenn man mehr Zeit gehabt hätte sich einzuarbeiten (nein, Unterstützung gibs es in der Lehrveranstaltung für die eigentliche Programmierung nicht wirklich), würde solche Sache sicher nicht passieren...
Gruß
Stareagle