Ich versuche, ein grundlegendes Beispiel für Spring und Quartz zu erhalten. Hier ist das Tutorial, dem ich folge: Ссылка
Ich habe alles so genau kopiert, wie ich sagen kann, aber ich sehe nichts im Ausgabefenster.
spring-quartz.xml
%Vor%applicationContext.xml
%Vor%Projektstruktur
BEARBEITEN
Muss ich den Job irgendwie manuell starten? Ich sehe in diesem Tutorial und in anderen, normalerweise starten sie einen Quarz-Job innerhalb einer main()
-Methode. Ich komme aus einem .NET-Hintergrund, der mir etwas komisch vorkommt, da ich nur main
-Methoden in Desktop-Apps kenne; keine Web Apps. In ASP.NET haben wir Global.asax
, wo wir Code aufrufen können, der beim Start der Web-App ausgeführt wird. Gibt es eine Entsprechung in Java? Oder ist das überhaupt nicht das Problem? Ich rate nur hier. Wenn jemand eine Idee davon hat, wie man das löst oder mir nur ein funktionierendes Beispiel gibt (kann sogar anders sein als das obige; ich bin nicht pingelig) ... dann würde ich es am meisten schätzen. Ich brauche nur ein Grundarbeitsbeispiel, das ich später an meine Anforderungen anpassen kann.
BEARBEITEN 2
Hier ist der Glassfish-Server-Ausgang, wenn es hilft:
[HINWEIS: Entfernt, da die Länge dieses Pfostens zu lang ist. Sonst könnte ich Edit # 3 nicht posten.]
EDIT 3
Einige Fortschritte, aber immer noch nicht funktioniert. Ich habe die log4j-Datei wie von @shuttsy vorgeschlagen hinzugefügt und hier ist die neue Ausgabe von Glassfish:
%Vor%Also, wir haben hier einen neuen Fehler (der mit meiner ursprünglichen Frage in Verbindung steht oder nicht) über Quartz. Es scheint, dass der Fehler JDBC-bezogen ist. Ich benutze sqljdbc4 Treiber: Ссылка
Endlich habe ich eine funktionierende Lösung gefunden !!!
Im Grunde genommen habe ich alles genommen, was in spring-quartz.xml
war und steckte es stattdessen in mein dispatcher-servlet.xml
... jetzt läuft es .. lovely ...
Ich würde immer noch gerne wissen, warum der andere Weg nicht funktioniert hat. Ich vermute das entweder:
<import resource="spring-quartz.xml"/>
hat nicht funktioniert .. oder: applicationContext.xml
-Datei selbst wird nicht geladen .. Ich bin kein Java-Experte, daher kenne ich die Antwort nicht. Wenn jemand eine Idee hat, bitte posten Sie es hier. Wie auch immer, danke an alle, die es versucht haben. : -)
Ihre Glassfish-Ausgabe legt nahe, dass Ihre log4j-Konfiguration nicht korrekt ist. Haben Sie eine log4j.properties-Datei? Versuchen Sie, eines mit dem grundlegenden Inhalt von hinzuzufügen:
%Vor%Spring protokolliert die geladene XML-Datei und die erstellten Beans, aber Sie erhalten diese Informationen aufgrund des log4j-Problems nicht.
Hinweis: Sie können das gleiche Ergebnis erzielen (das ist eine Aufgabe, die alle 5 Sekunden ausgelöst wird) mit einem viel einfacheren Spring xml:
%Vor%
Versuchen Sie es stattdessen, erhalten Sie jetzt Ihre Ausgabe?
Ja, das Problem war, dass die Datei "applicationContext.xml" nicht geladen wurde.
In der Webanwendung ist die geladene Standardkonfigurationsdatei die Datei -servlet.xml.
Normalerweise werden alle mit dem Webreifen verwandten Beans in dieser Konfigurationsdatei deklariert.
Wenn Sie eine separate Kontextdatei laden möchten, müssen Sie sie in der Datei web.xml angeben Ex:
%Vor% In Ihrem Fall können Sie entweder <import resource="spring-quartz.xml"/>
nach dispatcher-servlet.xml
verschieben oder Sie können die Unterstützung für applicationContext.xml
file
Vor der Spring-Konfiguration treten in Server-Traces Ausnahmen auf. Probleme ergeben sich aus der Version 3.1.2.2 von Glassfish, die abgehört wird: Schau hier und du wirst das gleiche Problem wie bei dir finden: Ссылка Glassfish löst beim Starten die NullPointerException aus
Ein weiterer Hinweis ist die Adresse Ссылка , in der das Apache log4j-Team über das Problem spricht. Sie suggest:
Ich denke, dass Sie eine neuere Version von Glasfish und von Log4j verwenden müssen.
Ich hoffe, es wird helfen
Tags und Links java spring spring-mvc quartz-scheduler