it-swarm.com.de

Übergeben Sie eine benutzerdefinierte Umgebungsvariable an Tomcat

Ich verwende den Eclipse für die Codierung von Webanwendungen. In diesem habe ich die Umgebungsvariable übergeben:

  1. Projekt -> Ausführen als -> Konfiguration ausführen. Und die Registerkarte Umgebung.
  2. Fügen Sie eine neue Umgebungsvariable mit dem Namen APP_MASTER_PASSWORD und ihrem Wert hinzu.

Ich kann auf diesen Wert im Java-Code als System.getenv("APP_MASTER_PASSWORD") zugreifen.

Nun möchte ich diese Umgebungsvariable an Tomcat übergeben und in der Anwendung darauf zugreifen, anstatt Eclipse zu übergeben.

Wie kann ich eine solche Variable an Tomcat übergeben?

Ich habe gegoogelt. Aber ich habe keine Lösung bekommen.

Vielen Dank.

14
Naresh J

Sie können setenv.bat oder .sh verwenden, um die Umgebungsvariablen an Tomcat zu übergeben.

Erstellen Sie die Datei CATALINA_BASE/bin/setenv.bat oder .sh und fügen Sie die folgende Zeile ein. Starten Sie dann den Tomcat.

Unter Windows:

set APP_MASTER_PASSWORD=foo

Auf Unix-ähnlichen Systemen:

export APP_MASTER_PASSWORD=foo

29
Shinichi Kai

In diesem Fall sollten Sie die System-Eigenschaft anstelle der Umgebungsvariablen verwenden. Bearbeiten Sie Ihre Tomcat-Skripte für Java_OPTS und fügen Sie die folgenden Eigenschaften hinzu:

-DAPP_MASTER_PASSWORD=foo

und schreiben Sie in Ihren Code

System.getProperty("APP_MASTER_PASSWORD");

Sie können dies auch in Eclipse tun. Kopieren Sie statt Java_OPTS die Zeile in VM -Parametern in Ausführungskonfigurationen.

18
Ankit

Umgebung Mit <Environment> markup angegebene Einträge sind JNDI, auf die über InitialContext.lookup unter Java:/comp/env zugegriffen werden kann. Sie können Umgebungseigenschaften für JNDI angeben, indem Sie den Umgebungsparameter für den Konstruktor InitialContext und Anwendungsressourcendateien verwenden.

System.getEnv() handelt von Systemumgebungsvariablen des Tomcat-Prozesses selbst.

So legen Sie eine Umgebungsvariable mit dem Bash-Befehl fest: export Tomcat_OPTS=-Dmy.bar=foo Und starten Sie Tomcat: ./startup.shUm den Wert der Systemeigenschaft bar abzurufen, verwenden Sie System.getProperty(). System.getEnv() kann verwendet werden, um die Umgebungsvariable abzurufen, d. h. Tomcat_OPTS.

7
NINCOMPOOP

Gehen Sie bei Unix- und Mac-Systemen im Tomcat-Ordner zu /bin/setenv.sh

Fügen Sie die folgende Zeile hinzu

export Java_OPTS="$Java_OPTS -DAPP_MASTER_PASSWORD=mypass"

Jetzt gibt System.getProperty("APP_MASTER_PASSWORD")"mypass" Zurück

0
IamVickyAV

Wenn Sie Ihren Tomcat von Eclipse aus (Ansicht "Server") starten, sollten Sie über den Eintrag "Run/Run Configuration" (Menü) mit dem Namen "Apache Tomcat/Tomcat ..." verfügen. Wenn Sie diesen Eintrag in der Liste der Laufkonfigurationen auswählen, wird ein Fenster mit mehreren Registerkarten angezeigt, von denen eine mit "Umgebung" beschriftet ist. Dort können Sie Umgebungsvariablen für Ihren Tomcat konfigurieren. Stellen Sie sicher, dass Sie Tomcat anschließend neu starten.

0
Renardo

mgebungsvariablen können festgelegt werden, indem Sie eine Datei setenv.bat (Windows) oder setenv.sh (Unix) im Ordner bin Ihres Tomcat-Installationsverzeichnisses erstellen . Umgebungsvariablen können jedoch nicht aus Ihrem Code heraus aufgerufen werden.

Systemeigenschaften werden durch -D - Argumente des Java) - Prozesses festgelegt. Sie können Java) - Startargumente in definieren Umgebungsvariable Java_OPTS.

Meine Vorschläge sind die Kombination dieser beiden Mechanismen. In deinem Apache-Tomcat-0.0.0\bin\setenv.bat Schreibe:

set Java_OPTS=-DAPP_MASTER_PASSWORD=password1

und schreibe in deinen Java Code:

System.getProperty("APP_MASTER_PASSWORD")
0
slartidan

Falls Sie setenv.bat nicht finden können, fügen Sie in der zweiten Zeile von catalina.bat (nach @echo off) Folgendes hinzu:
SET APP_MASTER_PASSWORD = foo

Mag nicht der beste Ansatz sein, aber funktioniert

0
ObviousChild