2016-10-07 4 views
0

Ich habe eine Anwendung, die einige externe Parameter benötigt, um ihre Aufgabe zu erledigen. In diesem Moment übergebe ich diese Parameter als JVM-Parameter und lese dann durch System.getProperty(). Jetzt wird meine Anwendung von zwei verschiedenen Clients verwendet, und ich möchte verschiedene Werte übergeben, je nachdem auf welchen Client zugegriffen wird. Ich weiß, dass ich das schaffen kann, indem ich zwei Domains erstelle, aber ich würde sie wirklich gerne mit dem gleichen Port und dem selben App-Namen haben. Ex:Glassfish - Unterschiedlicher Parameterwert für die gleiche Anwendung

http://client1.myurl.com:8080/app 

http://client2.myurl.com:8080/app 

Ich habe bereits zwei virtuelle Server erstellt, aber ich kann nicht herausfinden, wie ich verschiedene Parameter an die App übergeben kann, je nach der Virtual-Server ist es aufgerufen wird.

+0

Was meinen Sie mit "Wie kann ich verschiedene Parameter an die App übergeben?"? Wenn ich Ihre Beschreibungen richtig verstehe, möchten Sie eine Java-Anwendung ausführen, die zwei virtuelle Server abdeckt. Es gibt also nur eine App, und Sie müssen zur Laufzeit dynamisch unterscheiden, welchen Parameter Sie verwenden sollten. Beim Start geben Sie alle benötigten Parameter-Sets an, indem Sie den Namen der Eigenschaft beispielsweise wie folgt definieren: "-Dproperty1.client1 = value1, -Dproperty1.client2 = value2, etc.". Aber sobald ein dritter Kunde ins Spiel kommt, wird dieser Ansatz in einem Albtraum enden. Die App sollte besser über Property-Dateien parametrisiert werden. – Heri

+0

Vielen Dank für die Antwort @Heri. Das Problem ist, wie man erkennt, welcher Client auf die Anwendung zugreift. Eine Möglichkeit, wie ich denken kann, ist die URL zu bekommen. Aber ich dachte, da ich die virtuellen Server erstellen kann, gab es eine Möglichkeit, der Anwendung verschiedene Parameter zu übergeben, je nachdem, welcher virtuelle Server für die Verbindung verwendet wird. – CesarKuehl

+0

Warum antworten Sie nicht auf meine Frage und wiederholen stattdessen die gleiche Formulierung, die ich nicht verstehe? – Heri

Antwort

0

Ich habe eine Lösung für das Problem gefunden. Ich musste nur die Anwendung zweimal mit dem gleichen Kontext-Root, aber mit einem anderen Namen, jedes an einen bestimmten Virtual-Server binden.

In diesem Szenario werden zwei Anwendungsordner für Domäne/Anwendungen erstellt, so dass ich zwei Versionen derselben App mit einer anderen Eigenschaftendatei haben kann.

Verwandte Themen