App URL aus dem EJB bekommen

internet

Top Contributor
Hallo,

ich würde gerne beim Hochfahren des Servers (WildFly) die Url der Applikation erhalten. Diese soll dann irgendwo im Cache gespeichert werden...
Klar, ich kann das natürlich als statischen String irgendwo ablegen, aber das will ich nicht.

Im EJB Container kann ich ja keinen HTTP Request erzeugen.
Welche Möglichkeiten habe ich?
 

internet

Top Contributor
damit ich beim Start der Applikation ein paar Dinge laden kann, wie:

  • URL der Applikation
  • Start von einem Schedule
  • Umgebungstype (Produktion, Entwicklungssystem)
  • ....
 

KonradN

Super-Moderator
Mitarbeiter
Ich kann hier auch nicht wirklich folgen.
  • Wozu genau brauchst Du die URL der Applikation?
  • Schedules sind doch in der Regel irgendwo konfiguriert, oder nicht? D.h. Du hast dann z.B. in der Datenbank entsprechende Einträge (wenn es auch im Frontend zu konfigurieren ist) oder Du hast eine Konfiguration auf dem Server (Dann ist es eine Einstellung vom Administrator).
  • Umgebungstyp ist doch der Anwendung egal. Wenn die Anwendung in Produktion ist, dann werden da halt produktive Daten vorhanden sein. In einer Test, Abnahme, sonstwas Umgebung, wird die Anwendung auch ganz normal laufen, nur eben sind dann da halt Testdaten. Aber das ist der Anwendung selbst doch egal.

Also ja - so diverse Umgebungen kenne ich auch, aber da gibt es explizit keine Unterschiede. Sobald Du da im Code irgendwo Unterschiede machst, dann hast Du das Problem, dass ein Fehler in diesem Code dazu führt, dass die Anwendung bei Dir in der Entwicklungsumgebung oder Abnahme oder so einwandfrei funktioniert hat aber in Produktion hast Du plötzlich Probleme....

Aber evtl. habe ich Dein Vorhaben auch einfach nur missverstanden.
 

internet

Top Contributor
  • Wozu genau brauchst Du die URL der Applikation
Um bpsw. in Emailvorlagen einen Link zu haben, der dann direkt in das Portal geht.

  • Schedules sind doch in der Regel irgendwo konfiguriert, oder nicht? D.h. Du hast dann z.B. in der Datenbank entsprechende Einträge (wenn es auch im Frontend zu konfigurieren ist) oder Du hast eine Konfiguration auf dem Server (Dann ist es eine Einstellung vom Administrator)
Dann habe ich mich falsch ausgedrückt. Es geht nur darum, ob der Schedule Service generell gestartet ist oder nicht. Um zu verhindern, dass bei App Start sämtliche Schedules loslaufen, könnte man dies in eine Property für den Systemstart haben.

  • Umgebungstyp ist doch der Anwendung egal. Wenn die Anwendung in Produktion ist, dann werden da halt produktive Daten vorhanden sein. In einer Test, Abnahme, sonstwas Umgebung, wird die Anwendung auch ganz normal laufen, nur eben sind dann da halt Testdaten. Aber das ist der Anwendung selbst doch egal
Hier wäre ein Anwendungsfall:
In der Datenbank speichere ich bspw. API Keys von Drittanwendungen, die auch ein Testsystem (Sandbox) haben.
Die beiden Keys (PROD und TEST) speichere ich ebenfalls in der Datenbank.
Mein System soll entsprechend den API Key verwenden, welches auch mein System ist (PROD oder TEST).
 

LimDul

Top Contributor
Ein Test System sollte bitte Zugriff auf
Um bpsw. in Emailvorlagen einen Link zu haben, der dann direkt in das Portal geht.
So kenne ich das auch.

Hier wäre ein Anwendungsfall:
In der Datenbank speichere ich bspw. API Keys von Drittanwendungen, die auch ein Testsystem (Sandbox) haben.
Die beiden Keys (PROD und TEST) speichere ich ebenfalls in der Datenbank.
Mein System soll entsprechend den API Key verwenden, welches auch mein System ist (PROD oder TEST).
Aus meiner Sicht, sollte das kein Grund sein.

Test & Produktion gehören getrennt - in größeren Umgebungen auch strikt per Firewall. In einem Datenbankschema steht entweder der PROD oder der TEST-Key. Und die Produktionsanwendung greift nur auf das PROD-Schema zu (das auch ein anderes Passwort als das Test-scherma hat) oder auf das Test-Schema hat.
 

KonradN

Super-Moderator
Mitarbeiter
Um bpsw. in Emailvorlagen einen Link zu haben, der dann direkt in das Portal geht.
Das ist natürlich - wie auch schon von anderen gesagt - ein valider Grund.

Dann habe ich mich falsch ausgedrückt. Es geht nur darum, ob der Schedule Service generell gestartet ist oder nicht. Um zu verhindern, dass bei App Start sämtliche Schedules loslaufen, könnte man dies in eine Property für den Systemstart haben.
Aber hätte man da dann nicht einfach eine Option, dies direkt zu konfigurieren?
Die Umgebung spielt keine Rolle - Du hast einfach eine Konfiguration, die halt ausdrückt, was gestartet werden soll und was nicht. Denn es kann ja auch Situationen geben, in denen Du in Produktion etwas gestoppt haben willst.
 

internet

Top Contributor
Aber hätte man da dann nicht einfach eine Option, dies direkt zu konfigurieren?
Die Umgebung spielt keine Rolle - Du hast einfach eine Konfiguration, die halt ausdrückt, was gestartet werden soll und was nicht. Denn es kann ja auch Situationen geben, in denen Du in Produktion etwas gestoppt haben willst.
ob PROD oder DEV kann man sich nun streiten, ob das sinnvoll ist.. Da gebe ich Recht.

Die anderen zwei Dinge (Email und Scheduler) passen m.M.n.
 

Ähnliche Java Themen

Neue Themen


Oben