eigene Anwendung per Servlet Container starten

freez

Top Contributor
Hallo,

gibt es eine Möglichkeit beim Start eines Servlet Containers wie Tomcat eine eigene Java Anwendung mitzustarten (Umgebung: Tomcat 7, Java 6, Spring 3, JSF 2). Die Anwendung soll einfach gewisse Arbeiten zyklisch, oder auch nur einmalig durchführen, die für die Anwendung wichtig sind (Jobs). Betriebssystemspezifische Einrichtungen möchte ich hier aussen vor lassen (cron, Scheduled Tasks, usw.), da dies integraler Bestandteil der Anwendung ist. Schön wäre natürlich auch, wenn ich Zugriff auf die SpringBeans hätte, die für die Webanwendung genutzt werden. Bzw. wäre es auch anders herum wünschenswert von den SpringBeans auf die Jobs zuzugreifen um Informationen zum Status zu erhalten.
 

Noctarius

Top Contributor
Dann muss er auch im App-Context gestartet werden, ergo in der Anwendung laufen. Wie soll er sonst Zugriff auf den App-Context bekommen?
Und was heißt für dich "mitstarten"? Als eigener Prozess? Als eigener Thread? Als *bitte einsetzen*?
 

freez

Top Contributor
Und was heißt für dich "mitstarten"? Als eigener Prozess? Als eigener Thread? Als *bitte einsetzen*?

Wenn ich es selbst machen muss, dann als eigenständigen Thread. Meine Frage zielt auch ein wenig in die Richtung, ob es bereits vorhandene Mechanismen gibt um so eine nebenläufige Anwendung mit Tomcat zu starten.

Vielleicht zur Verdeutlichung ein paar Gedanken, mit denen ich nicht so recht glücklich bin:
Ich hatte schon den Gedanken, dass ich ein Servlet missbrauche und es automatisch starte. In der Init Methode dann einen Thread starten, der dann die gewünschten Arbeiten verrichtet. Nur ist das Problem, dass von einem Servlet mehrere Instanzen existieren könnten.

Zweiter Gedanke ist ein Singleton Spring Bean, welche auch wieder einen Thread startet .....
Allerdings werden komischerweise 2 Instanzen beim Starten vom Tomcat erzeugt. Somit fällt dies auch flach (mit static definition des Thread wollte ich in dem Fall gar nicht erst anfangen)
 

mvitz

Top Contributor
Für einmalige Jobs kann man doch die Lifecycle Listener der Servlet API nutzen, für wiederkehrende bietet sich doch (da du das sowieso schon nutzt) Spring selber an. Gibt doch eine Scheduler Komponente in Spring.
 

FArt

Top Contributor
Welche Technik eines AppServers sollte ich deiner Meinung nach verwenden um meine Anwendung zu starten? Ich bräuchte einen Suchbegriff, damit ich damit Google füttern kann.

Prinzipiell ist dein Vorhaben so nicht sinnvoll möglich: eine Java-Applikation (wie auch immer diese aussehen mag) und ein Servlet in einem Webcontainer starten, so dass diese sich zur Laufzeit Ressourcen (konkret Spring Beans) teilen.

Die Nummer mit den eigenen Threads usw. hast du ja zum Glück schon verworfen. Alle technischen Ansätze werden auf so einen Workaround herauslaufen. Das würde ich nicht empfehlen.

So weit ich weiß könnte man auch mit Tomcat einen Scheduler laufen lassen. Ich habe mal von einer Integration von Quartz gehört. Trotdem brauchst du zumindest eine zentrale Stelle, die beide Applikationen gemeinsam initialisiert.

Die bessere Lösung ist m.E. deine Applikation so zu modularisieren, dass du daraus eine Applikation und eine Webapplikation bauen kannst.
 

freez

Top Contributor

Danke für den Tipp, aber der Tipp von mvitz mit den Spring Schedulern ist genau der Richtige. Schön integriert in Spring und kann per Autowire auf Beans und Services zugreifen, wie auch anders herum. Ist genau das richtige und ich muss mich nicht ums Threading kümmern.

Für eine komplett separate App, die einfach mitgestartet werden soll und nur indirekt mit der eigentlichen WebApp zu tun hat, wäre der ServletContextListener wohl der sinnvollere Weg.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Datenkonsistenz und eigene Transaktion Allgemeines EE 7
R JAVA EE - eigene Klassen aus EJB übernehmen Allgemeines EE 2
G eigene Taglib, Attribut kann auf einaml keine Expressions Allgemeines EE 2
M DLL, eigene Klasse, Tomcat und JSP Allgemeines EE 4
O JSF eigene Validierungsnachricht Allgemeines EE 4
K JSP anfänger. auf eigene klassen zu greifen Allgemeines EE 8
D Benutzerrecht in der Anwendung neu strukturieren Allgemeines EE 5
D Praktische Anwendung des MVC Allgemeines EE 2
T Java ServerFaces Anwendung mit XHTML & CSS Allgemeines EE 1
E modulare Java-Anwendung verteilen (Camel) Allgemeines EE 0
M Zeitgesteuertes Ereignis in einer dynamic web module Anwendung (eclipse) Allgemeines EE 3
G Unit Test einer JavaEE Anwendung schlägt fehl. JNDI Name nicht gefunden. Allgemeines EE 3
G JavaEE Anwendung Testen Allgemeines EE 0
R Wiederverwendbarkeit in JavaEE Anwendung Allgemeines EE 2
OnDemand GUI in einer JavaEE Anwendung Allgemeines EE 6
C Fotoverwaltung in einer Multi-User Anwendung Allgemeines EE 4
W Servletfehler - kleine Anwendung Allgemeines EE 1
R Test einer JEE-Anwendung Allgemeines EE 3
S Verteilte Anwendung mit JavaEE Allgemeines EE 3
J paar Fragen zu JSF2/JEE6 Anwendung mit JBoss 7.1.1 Allgemeines EE 6
I EJB aus JSF Anwendung aufrufen Allgemeines EE 2
M JavaEE Anwendung weitergeben Allgemeines EE 24
J Anwendung mit Model 2 Architektur Allgemeines EE 3
T erste Anwendung in JBoss deployen Allgemeines EE 3
T Sinnvoll/machbar? Web Anwendung und EJB auf versch. Servern? Allgemeines EE 7
Y Zugriff auf Files aus einer EAR Anwendung Allgemeines EE 8
slawaweis CMS Unterbau für eine Web 2.0 Anwendung Allgemeines EE 4
H Installer für Tomcat-Anwendung Allgemeines EE 5
Java.getSkill() Anwendung Beans für Formulare Allgemeines EE 5
K Probleme mit Enterprise Anwendung Allgemeines EE 5
J JSF 1.2-Anwendung mit Eclipse Galileo Allgemeines EE 1
MQue URL im Brower beim Starten der Anwendung richtig setzen Allgemeines EE 4
S Session in eine andere Anwendung übergeben Allgemeines EE 2
G JSF Anwendung und individuelle Kofiguration Allgemeines EE 6
M Gelegentlicher Absturz Tomcat Anwendung: PermGen Space Allgemeines EE 6
K Java Application Server + ganttproject *.jar Anwendung Allgemeines EE 6
K JSF Test Anwendung ausführen funktioniert nicht Allgemeines EE 7
M Fehler in JSF Anwendung Allgemeines EE 4
M Web Anwendung soll auf Basisobjekte zugreifen können Allgemeines EE 2
M Intranet-Anwendung auf Basis von JSF Allgemeines EE 11
N Tomcat GWT-Anwendung - An beliebiger Stelle schreiben Allgemeines EE 2
ARadauer aus j2se anwendung auf j2ee elemente zugreifen Allgemeines EE 2
S Keystore Zugriff aus Web-Anwendung Allgemeines EE 2
P Testen von Struts-Anwendung Allgemeines EE 7
E freien Forum-Anwendung Allgemeines EE 8
T eine web anwendung bereitstellen ? Allgemeines EE 5
P Struts Anwendung- FormBean Tabelle mit input type=text Allgemeines EE 2
G Anwendung mit Web- und Windowsclient Allgemeines EE 5
A Anwendung auf WebSphere deployen Allgemeines EE 3
W Woraus baut man eine Super-Business-Anwendung? Allgemeines EE 5
T URL der Anwendung bekommen. Allgemeines EE 2
G Jakarta Servlet API 5.0 Allgemeines EE 1
pkm Frage wegen AJAX-Zugriff auf ein Servlet Allgemeines EE 1
Dimax Servlet Servlet Kommunikation Allgemeines EE 18
K Unterschied zwischen JSP & Servlet gegenüber REST mittels JAX-RS Allgemeines EE 1
Dimax Servlet läuft in Eclipse, aber nicht im Browser Allgemeines EE 74
M URL Servlet Request getParameter Allgemeines EE 2
M Servlet Methoden Aufruf im Servlet Allgemeines EE 10
J 404 Not found (Servlet) Allgemeines EE 1
J Asynchrones Servlet löst NullPointerException aus Allgemeines EE 5
E Servlet Servlet das richtige? Allgemeines EE 11
B HTTP-Header-Inspektor-Servlet Allgemeines EE 1
N JSP Servlet mit JSP ansprechen Allgemeines EE 2
F Mehrere Bilder aus MySQL DB via Servlet darstellen. Allgemeines EE 1
J FTP und Servlet Allgemeines EE 11
H Post an Servlet Allgemeines EE 2
A Binärdatei vom Servlet erzeugen lassen Allgemeines EE 3
S Servlet Authentication Filter Allgemeines EE 0
S LDAP JAAS oder Servlet Allgemeines EE 0
G Problem: Servlet in JSP einbinden mit <jsp:include> Allgemeines EE 3
F Servlet Daten im Speicher ablegen Allgemeines EE 3
L Servlet ClassNotFoundException Servlet Allgemeines EE 3
G Allgemeine Frage zu Authentifizierung mittels Servlet API Allgemeines EE 2
J Servlet "package does not exist" Allgemeines EE 5
K Servlet-Mapping Allgemeines EE 9
0 Servlet mit ArrayList Allgemeines EE 3
E Servlet unter mehreren Adressen Allgemeines EE 16
S Pfad-Zugriff über Servlet-init() Allgemeines EE 2
E Servlet Wie kann ich ohne Hilfe von Eclipse in JBoss mein servlet aufrufen Allgemeines EE 2
S Servlet.service() threw exception Allgemeines EE 4
A Servlet erkennt request Objekt nicht Allgemeines EE 8
G Direkter Zugriff auf Servlet- doPost Allgemeines EE 15
G Servlet doGet, doPost Allgemeines EE 3
A Kodierungsproblem bei Parameterübergabe von Browser an Servlet (GET) Allgemeines EE 2
Antoras servlet-mapping auf dynamische URLs Allgemeines EE 17
0 Problem mit librarys javax.servlet.http.HttpServletRequest cannot be resolved Allgemeines EE 1
MQue Ajax - Servlet Allgemeines EE 2
MQue Servlet Allgemeines EE 9
S [Design] Dynamischer EJB Aufruf von Servlet Allgemeines EE 3
S Servlet auf JBoss 5? Allgemeines EE 11
B HttpSession bekommen wenn nicht in Servlet Allgemeines EE 8
MQue Servlet / Button Allgemeines EE 5
S In Eclipse werden die "Servlet-Klassen" nicht gefu Allgemeines EE 2
U javax.faces und javax.servlet cannot be resolved Allgemeines EE 2
W Potentielles Memory Leak bei Servlet Allgemeines EE 6
B unterschied servlet und bean Allgemeines EE 2
Escorter Servlet .sar und jede Menge .jar Archive Allgemeines EE 2
N Servlet und JSF (URL-Rewriting)? Allgemeines EE 3
A jsf: Servlet aufrufen, wie geht das? web.xml Fehler? Allgemeines EE 13
N Servlet zyklisch aktualisieren Allgemeines EE 2

Ähnliche Java Themen


Oben