Tomcat - Deploy von Webanwendung

dflasjjs

Bekanntes Mitglied
Hi,

ich habe meine Webanwendung in ein WAR-File gepackt. Darin befindet es sich unter WEB-INF/classes/cfg.cfg ein Konfigurationsfile, welches man durch die Anwendung editieren kann.

Beispiel: Anwendung läuft, ich stelle in der Anwendung die Sprache ein, dieses wird im Konfigurationsfile gespeichert.

Beim Deploy wird das WAR-File ja entpackt und es entsteht ein gleichnamiger Ordner.
Wenn die Anwendung nun läuft ich ich ändere die Sprache und dieses wird im cfg-File aktualisiert, dann ja nur im deploy-Ordner und nicht in dem WAR-File.

Wenn ich den Server nun neustarte, wird mein Konfigurationsfile (im Ordner) mit dem aus dem WAR-File überschrieben?

Ich hab eben Angst, dass alle Einstellungen die ich gemacht habe, durch irgendwelche Umstände verloren gehen und das "originale" Konfigurationsfile aus der WAR-Datei wieder im Deploy-Ordner landet...

Hab ich irgendwie die Möglichkeit das WAR-File zu löschen, damit sowas nicht passiert?
Wenn ich momentan das WAR-File lösche, dann wird der Deploy-Ordner auch entfernt.
 
M

maki

Gast
Darin befindet es sich unter WEB-INF/classes/cfg.cfg ein Konfigurationsfile, welches man durch die Anwendung editieren kann.
Das ist eine gaaanz schlechte Idee, warum siehst du selber ;)

Du darfst nicht dahin schreiben, suche eine andere Lösung.
 

dflasjjs

Bekanntes Mitglied
Würde doch reichen, wenn man die Datei außerhalb des WAR-File speicher, oder?

EDIT: Kannst du mir sagen wann genau er das CFG-FIle überschreiben würde? Ich habe gerade mal einen Neustart getestet, aber dann wird nichts überschrieben...
 
Zuletzt bearbeitet:

dflasjjs

Bekanntes Mitglied
Okay. Wo speicher ich sowas denn standardmäßig hin? Auch in den webapps-Ordner? Ich möchte nicht, dass man die Datei über die direkte Angabe in der Adresszeile aus aufrufen kann, wäre das überhaupt im Webapps-Ordner möglich?

EDIT: Problem was ich eben sehe, wie mache ich der Anwendung klar wo genau das File liegt? Es muss ja irgendwie relativ zum Deploy-Ordner liegen (ich will keinen absoluten Pfad bestimmen, kann ich auch gar nicht, wenn es unter Linux und Windows lauffähig sein soll, oder?)
 
Zuletzt bearbeitet:

citizen_erased

Bekanntes Mitglied
gegen absolute pfad spricht eigentlich nichts, oder?
ein new File("/bla/blub/dings"); geht unter Windows (das wird dann zu c:\bla\blub\) und Linux (hier noch um schreibrechte für den user kümmern)
 

dflasjjs

Bekanntes Mitglied
Hmm, was ist wenns unter Windows keine C-Partition gibt?

Angenommen ich speichere es im webapps-Ordner, wie komme ich an den Pfad ran (ohne Stringoperationen)?
servletContext().getRealPath("") ist ist ja schon ein Ordner zu weit...
 
M

maki

Gast
Warum nicht ein ContextParam oder ähnliches (Servlet Init Param) in die web.xml setzen mit einem Pfad den es garantiert gibt?

Nebenbei, wenn ich dir schon diese Lösung vorschlage, muss ich dir auch gestehen dass es nicht ganz "sauber" ist [c]java.io.File[/c] in einem ServletContainer (oder jedem anderen JEE Server) zu nutzen, wenn du nicht planst auf einen "richtigen" AppServer umzuziehen sollte es aber keine Probleme bereiten.
 
Zuletzt bearbeitet von einem Moderator:

dflasjjs

Bekanntes Mitglied
Oh ja, super. Funktioniert "wieder" alles. :) Vielen Dank maki!

Trotzdem möchte ich gerne verstehen wieso er bei mit die Datei überschrieben hat (nach einem Neustart).
Ich hatte es 1000x getestet und jetzt auf einmal hat er alles überschrieben. Woran kann das liegen?
 
M

maki

Gast
Trotzdem möchte ich gerne verstehen wieso er bei mit die Datei überschrieben hat (nach einem Neustart).
Ich hatte es 1000x getestet und jetzt auf einmal hat er alles überschrieben. Woran kann das liegen?
Die Servlet Spec. macht keine Annahmen darüber ob oder wohin das WAR entpackt wird oder nicht, deswegen ist es keine gute Idee zu versuchen dahin zu scheiben.

Wenn du es genau wissen willst kannst du dir ja mal die Spec. durchlesen (auf die richtige Version achten!), hier das JavaDoc zu ServletContext.getRealPath(String):
getRealPath

public java.lang.String getRealPath(java.lang.String path)

Returns a String containing the real path for a given virtual path. For example, the path "/index.html" returns the absolute file path on the server's filesystem would be served by a request for "http://host/contextPath/index.html", where contextPath is the context path of this ServletContext..

The real path returned will be in a form appropriate to the computer and operating system on which the servlet container is running, including the proper path separators. This method returns null if the servlet container cannot translate the virtual path to a real path for any reason (such as when the content is being made available from a .war archive).
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Bluedaishi Apache Tomcat 9 Java Basics - Anfänger-Themen 7
A Tomcat response drosseln Java Basics - Anfänger-Themen 2
G Tomcat Form-based Authentifizierung Java Basics - Anfänger-Themen 0
R OutOfmemory Exception bei sehr großer Liste (Tomcat Webservice) Java Basics - Anfänger-Themen 4
H Tomcat -> Lucene NoClassDefFound-Exception Java Basics - Anfänger-Themen 4
S In Eclipse relativen Pfad fuer Tomcat Server erstellen..? Java Basics - Anfänger-Themen 3
Povlsen84 [javafx] Zusammenarbeit mit Tomcat Java Basics - Anfänger-Themen 4
I Probleme mit Tomcat / Servlet auf Linux (Debian) Java Basics - Anfänger-Themen 7
Z Tomcat Server Kommunikation zu Client Applet Java Basics - Anfänger-Themen 5
M tomcat Projekte und geschützte Dateien Java Basics - Anfänger-Themen 9
J tomcat 4.1.39 experimente 8) Java Basics - Anfänger-Themen 4
G Tomcat Tutorial. Java Basics - Anfänger-Themen 8
G http-Port beim Apache Tomcat ändern Java Basics - Anfänger-Themen 1
E Frage zu eclipse , Tomcat , Debugging Java Basics - Anfänger-Themen 7
N FileClassLoader läuft nicht in Tomcat Java Basics - Anfänger-Themen 5
G Apache Tomcat startet nicht da JAVA_HOME nicht definiert Java Basics - Anfänger-Themen 3
G Context Listener des Apache Tomcat verwenden Java Basics - Anfänger-Themen 4
G http-Request auf Apache Tomcat Java Basics - Anfänger-Themen 13
G Log-Datei wird nur in Eclipse aber nicht auf Tomcat erzeugt Java Basics - Anfänger-Themen 5
P kann seiten aus tomcat nicht aufrufen Java Basics - Anfänger-Themen 3
S Tomcat Error mit meiner ersten JSF Seite Java Basics - Anfänger-Themen 17
G tomcat und class files Java Basics - Anfänger-Themen 5
G Servlets: Erwartete/Angelegte Pfade von Tomcat/Eclipse Java Basics - Anfänger-Themen 2
D Eclipse & Tomcat Java Basics - Anfänger-Themen 2
K Eclipse - Sysdeo Plugin - Tomcat Server Java Basics - Anfänger-Themen 2
W Fehlermeldung beim start des Tomcat Java Basics - Anfänger-Themen 4
G Was bedeutet diese Fehlermeldung von Tomcat Java Basics - Anfänger-Themen 29
G hilfe jsp/servlet,jdbc api running on tomcat server+webProxy Java Basics - Anfänger-Themen 8
G war-Dateien im Tomcat löschen Java Basics - Anfänger-Themen 2
C Servlet & tomcat 5.0.28 Java Basics - Anfänger-Themen 7
I Tomcat unter Suse Linux installieren Java Basics - Anfänger-Themen 35
Z Servlet/Tomcat Problem Java Basics - Anfänger-Themen 3
L bean error bei glassfish deploy Java Basics - Anfänger-Themen 2
K Frage zu "-Djava.awt.headless=true" und deploy in Java Basics - Anfänger-Themen 4
M Deploy findet Datei nicht Java Basics - Anfänger-Themen 2
E OOP Programmstrukturierung: UserManager für Webanwendung Java Basics - Anfänger-Themen 2
M Java als Webanwendung mit Datenbank abfrage Java Basics - Anfänger-Themen 3
S Performance-/Stress Test für Webanwendung Java Basics - Anfänger-Themen 2
J Webanwendung JavaFX Java Basics - Anfänger-Themen 4
D Periodische Aufgaben erledigen in Webanwendung (Servlet/JSP) Java Basics - Anfänger-Themen 7
G Strukturierung von Webanwendung Java Basics - Anfänger-Themen 4
K Treeview in J2EE-Webanwendung Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben