Java: Spring / Quartz: Der grundlegende Lernprogrammcode funktioniert nicht

8

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: Ссылка

    
Matt 19.12.2012, 11:56
quelle

6 Antworten

1

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:

  1. Die Zeile: <import resource="spring-quartz.xml"/> hat nicht funktioniert .. oder:
  2. Die 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. : -)

    
Matt 21.12.2012, 08:11
quelle
2

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?

    
shuttsy 19.12.2012 14:21
quelle
1

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

hinzufügen     
Arun P Johny 21.12.2012 09:32
quelle
0
  

Muss ich den Job irgendwie manuell starten?

Nein, Sie müssen sie nicht manuell starten.

    
Ralph 19.12.2012 13:13
quelle
0

versuche es zu ändern

%Vor%

bis

%Vor%     
jorgenio 20.12.2012 10:02
quelle
0

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:

  • Legen Sie die Systemeigenschaft org.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES auf false fest.
  • Übernehmen Sie den Patch aus dem Fehler 40212 oder aktualisieren Sie ihn auf eine Version, auf die dieser Patch angewendet wurde.
  • Führen Sie ein Upgrade auf log4j 1.2.16 oder höher durch, um besser gegen den Klassenladerangriff zu schützen oder eine bessere Diagnosemeldung bereitzustellen, wenn diese auftritt.

Ich denke, dass Sie eine neuere Version von Glasfish und von Log4j verwenden müssen.

Ich hoffe, es wird helfen

    
JN Gerbaux 18.02.2015 10:22
quelle