Daten zwischen 2 Servlets aus 2 Webapplikationen teilen?

sirbender

Top Contributor
Hi,

ich habe 2 Servlets in 2 Webapplicationen die im selben Tomcat laufen.

Ich erklaere mal kurz warum ich die 2 Servlets als 2 Webapplikationen deploye anstatt beide in einer.

Das erste Servlet initialisiert eine grosse Map und beinhaltet sehr viele Resourcen. Ich will das praktisch nur einmal deployen weil dies solange dauert und dann laufen lassen.

Servlet Nr. 2 soll oft deployed werden. Es wird oft geaendert, ist schlank und das deployen geht schnell. Ich hoffe es leuchtet jedem ein, dass ich beide Servlets - und vor allem nicht die riesigen Resourcen in eine Webapplikation stecken kann.


Nun will ich Daten zwischen den Servlets teilen. Da es sich um 2 Webapplikationen handelt get context.setAttribute(key, Map) ja leider nicht, oder?

Wie kann ich es sonst tun, und wie effizient ist dann dieses das Daten-Sharing? Werden die Daten direkt geteilt oder erst serialisiert und dann zum anfragenden Servlet geschickt?


Danke,
sb
 

sirbender

Top Contributor
Hmm...Datenbank steht glaube ich ausser Frage. Oder kann ich eine Datenbank als eine der Applikationen von Tomcat laufen lassen?

Wie wuerde denn eine Loesung ueber JMS funktionieren? Das Problem ist, wenn die Kommunikation zu aufwendig ist, kann ich mir dass mit dem 2ten Servlet auch gleich sparen.
 

mvitz

Top Contributor
Du kannst z.B. eine Embedded Datenbank benutzen, wie z.B. H2 oder HSQLDB. Diese speichern alles in einem File und brauchen keinerlei Administration, können somit praktisch aus Tomcat heraus "gestartet und verwaltet" werden.
 

mvitz

Top Contributor
Idr. kann immer nur ein Prozess auf einmal auf diese Datenbank zugreifen. Und man kann dann zwar auch von extern wenn man Zugriff auf die Datei hat zugreifen, dann kann allerdings die Webapp in dem Moment nicht darauf zugreifen.
 

sirbender

Top Contributor
Die Daten muessen halt von der Webapp gelesen werden. Eine Datenbank wollte ich nicht aufsetzen, da wirklich die Daten nur einmal eingelesen werden muessen.

Wenn ich keine Datenbank will, welche Optionen haetten sich sonst noch geboten? Die Daten irgendwo ausserhalb des tomcat webapps folder speichern..? Kann ich dann irgendwie auf die Daten mit der Webapp zugreifen?

Ich will halt nicht die Daten mit der webapp als Teil des WAR deployen da es viele Daten sind.

Ein weiterer Punkt war dass die Initialisierung/Processing der Daten sehr lange dauert und nicht bei jedem deployen der webapp geschehen sollte. Alleine schon weil es den Entwicklungsprozess sehr verlangsamen wuerde. Deshalb wollte ich eine 2te Webapp schreiben die die Daten einmal einliest, prozessiert und welche dann nie mehr re-deployed wird und der 1sten Webapp die prozessierten Daten zur Verfuegung stellt. Die 1ste Webapp koennte also immer wieder redeployed werden ohne Re-prozessierung der Daten.
 

Noctarius

Top Contributor
Ich denke das, wenn du soviele Daten hast, eine Datenbank tatsächlich das Beste wäre. Was hält dich davon ab eine Datenbank einzusetzen? Was stört dich an dem Gedanken?

Der beste Platz um Daten vorzuhalten ist nunmal eine Datenbank. Du wirst nahezu niemals schaffen eine schnellere Datenabfrage hinzubekommen als Datenbanken das können.
 

sirbender

Top Contributor
Zunaechst einmal geht es wirklich nur darum ein paar Dateien einzulesen und daraus Java-Datenstrukturen zu machen. Ich glaube letztere Strukturen kann man auch nicht in einer Datenbank sinnvoll abspeichern. Nicht mal serialisieren geht.

Was mir uebrig bleiben wuerde waere also das Speichern der Rohdaten in der Datenbank. Das will ich natuerlich nicht.

Es ist also nicht moeglich von einem Servlet ausserhalb seines lokalen /webapp/servlet1 Verzeichnisses auf Daten zuzugreifen?

Btw, meintest du den HSQLDB Servlet mode: Chapter 1. Running and Using Hsqldb ? Oder den Embedded Mode?
 

Noctarius

Top Contributor
Klar kannst du auf Verzeichnisse außerhalb des Webapp-Roots zugreifen. Wir sind hier ja nicht in so komischen Sprachen wie PHP wo man davon ausgeht, dass der Nutzer eines Scripts scheinbar keine Ahnung hat :p
 

sirbender

Top Contributor
Hehe. Jaja...PHP ;)

Wie sollte ich das am besten machen? Ich wuerde ja eigentlich fast am liebsten per relativem Pfad zum webapps folder die Daten ablegen. Wie sollte der Zugriff auf eine solche Daten-Datei von einem Servlet aus erfolgen?
 

sirbender

Top Contributor
nein ich meinte eher, welche Methode.

this.getServletContext().getRealPath() ? Oder welche Methode?

Wie gesagt wuerde ich ungerne einen absoluten Pfad nutzen. Also lieber ein Folder auf gleicher Hoehe wie das webapps-Verzeichnis von Tomcat.
 

Noctarius

Top Contributor
Deswegen würde ich diesen absoluten Pfad in einer Propertiesdatei hinterlegen und so konfigurierbar machen. Dann brauchst du nicht mit relativen Pfaden zu experimentieren und bist viel flexibler.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Daten einer Datenbank in ein Formular einfügen Web Tier 3
S Daten von Client empfangen Web Tier 1
J Servlet Einschätzung anderer zu Daten-Repositories Web Tier 3
N JSF CommandButton Daten aus anderem Form auslesen Web Tier 3
C JSF JSF Daten aus Klasse werden nicht angezeigt Web Tier 4
X SQL Datenbank-Daten in ApplicationScoped ManageBean zwischenspeichern? Web Tier 4
P JSF Primefaces Picklist-Ersatz mit vielen Daten Web Tier 4
F Wo und wie Daten die für alle Benutzer bestimmt sind verwalten Web Tier 4
H JSF Daten aus ManagedBean können vom Controller gelesen werden Web Tier 6
P SelectOneMenu liest Daten nicht ein Web Tier 7
X JSP Auslesen der Daten einer Session Web Tier 3
R Daten Streamen mit Servlets. Web Tier 4
I JSF Daten aus Formular werden nicht übernommen Web Tier 6
T Post Daten Abfangen Web Tier 59
1 JSP Mit Daten einer c:forEach Rechnen ? Web Tier 4
T Daten - DB-Abfrage - Tabelle Web Tier 5
H Daten von Webseiten bekommen Web Tier 6
T Einfach nur Daten im JSP ausgeben Web Tier 2
R Wo Daten manipulieren? Client oder Server? Web Tier 3
N Tabelle dynamisch mit Daten aus Datenbank füllen Web Tier 3
sliwalker forEach und Scriptlet: Daten aus Scriptlet in jstl sehen Web Tier 2
S [SelectItems value(herkunft bean)] in [UI:repeat] lädt daten nicht neu nach Web Tier 3
P Formular-Daten-Überprüfung - Eingaben im Fehlerfall behalten Web Tier 2
T Daten aus der Form holen Web Tier 2
U JSP form-Daten (ohne name-Attribut) an Servlet = Problem Web Tier 6
G Daten von ablaufenden Sessions speichern? Web Tier 3
D Unterschied zwischen JSP und JSF Web Tier 3
T JSF Variable zwischen 2 Beans austauschen? Web Tier 3
X Managed Bean Scope zwischen Request und Session gesucht Web Tier 6
J JSF JavaScript Probleme zwischen Tomahawk und Tiles!? Web Tier 2
J Kommunikation zwischen Servlet und EJB Web Tier 6
D Kommunikation zwischen JSF Managed Beans Web Tier 11
M Zwischen GET und POST unterscheiden Web Tier 9
M Dateien zwischen Web-Applications austauschen Web Tier 3
T Model2-Architektur Servlets Web Tier 0
D Servlet EJBs in Servlets verwenden? Web Tier 4
S JSF, JSP, Servlets - ich verstehe nur noch Bahnhof Web Tier 4
M Best practice JSP und Servlets Web Tier 1
A Aufruf eines Servlets auf einer JSP Seite funktioniert nicht Web Tier 10
A Wartezeit nach Tomcat start wegen Servlets zu hoch Web Tier 2
T Einsteigerfragen zu Servlets/Webprogrammierung mit Java Web Tier 11
C Kommunkation Servlets/Browseraufruf Servlet Web Tier 4
U Servlet Allgemeine Frage zu Servlets Web Tier 2
T Tomcat mit Servlets Problem Web Tier 7
A Parameterübergabe an Servlet und Aufruf von Servlets per Java Code Web Tier 7
J web.xml / Erreichbarkeit von Servlets Web Tier 6
F Richtiges Session Management mit Servlets Web Tier 4
S Architektur-Problem? 2 Servlets, ein Objekt Web Tier 4
S Ein ControllerServlet für andere Servlets - Sinnvoll oder nicht? Web Tier 34
D Servlets vor direktem Zugriff schützen Web Tier 2
O setDefaultUncaughtExceptionHandler in Servlets Web Tier 2
M Design-Frage: JSP, Servlets und CSS Web Tier 11
Java.getSkill() Webseiten JSP Servlets Struktur Web Tier 3
R File Einlesen mit jsp/servlets Web Tier 11
D client-seitige Sessions mit Servlets Web Tier 5
M Bilder in Servlets Web Tier 8
U Grundaufbau der Webapp mit JSP/Servlets Web Tier 7
J Welcher WebServer(-anbieter) für Servlets? Web Tier 5
S Ablauffrage von Servlets Web Tier 2
G Kurze Frage zu Servlets&Struts Web Tier 4
L Massenaufruf ( 5000/s ) eines Servlets testen. Web Tier 4
G synchronized bei Servlets Web Tier 24
rambozola session attribut in servlets und jsps Web Tier 11
D Kann Servlets nicht kompilieren Web Tier 7
M Grundlegende Frage zu Servlets und JSPs Web Tier 12

Ähnliche Java Themen

Neue Themen


Oben