2016-10-17 3 views
0

Ich schreibe Webanwendungen mit Java EE 7 mit JSP und Servlets, die auf einem lokalen Wildfly 10-Server bereitgestellt werden.Implementierungszeitstempel in JSP einbeziehen Seite

Um meinen Code zu entwickeln und zu testen, wäre es nützlich, einen kleinen Zeitstempel in die angezeigte Webseite einzufügen, damit ich direkt sehen kann, wann die Version, die ich in meinem Browser anschaue, bereitgestellt wird.

Das würde mich davon abhalten, sowohl Änderungen zu veröffentlichen, als auch alte Cache-Versionen anstatt der neuesten zu betrachten.

Wie kann ich das Datum und die Uhrzeit anzeigen, wann eine Java EE-Webanwendung direkt auf der Webpage auf meinem Wildfly-Server bereitgestellt wurde?

Meine IDE ist Eclipse Neon für Java EE, wenn das zählt.

Antwort

1

Dies ist keine Bereitstellungszeit, sondern Startzeit der Anwendung. Vielleicht ist es für Ihren Zweck nützlich. Sie können die Klasse injizieren und sie verwenden, um Daten auf Ihrer Seite anzuzeigen.

@Startup 
@Singleton 
public class Deploytime 
{ 
    private LocalDateTime starttime; 

    @PostConstruct 
    public void init() { 
    starttime = LocalDateTime.now(); 
    } 
} 

aus, dass abgesehen kann ich denke nur an Maven Git Plugin, welche Dinge wie Buildtime erzeugen kann, begehen id, ... in eine propery Datei, die Sie auch auf der Seite verwenden können, um sie anzuzeigen (wenn Sie git (Maven).

+0

Danke, das könnte in der Tat genauso hilfreich sein. Going to Test es morgen früh –

1

Es gibt wahrscheinlich auch eine API, um dies zu tun, aber Sie können die Startzeit des Servers über die Befehlszeile abrufen. Unter der Annahme, dass Sie Ihren Benutzernamen admin und das Passwort eingerichtet haben (dh Sie so etwas wie add-user.sh ausgeführt haben) Sie laufen konnte:

curl --digest "http://user:[email protected]:9990/management/core-service/platform-mbean/type/runtime?operation=attribute&name=start-time" 

Natürlich ist dies nicht Java - Sie würden entweder um eine System.exec zu machen oder etwas wie HttpClient zu verwenden. Außerdem besteht das große Problem darin, dass Sie Ihren Admin-Nutzernamen und Ihr Passwort für den Code verfügbar haben müssen.

Die Wildfly HTTP Management Docs gehen etwas detaillierter mit einem kleinen Beispiel Java-Snippet.

BEARBEITEN: Entschuldigung - hätte nicht davon ausgehen müssen, dass der Server bei der Bereitstellung neu gestartet wird. Sie können mit der Bereitstellungszeit für einen Web-App bekommen:

curl --digest "http://user:[email protected]:9990/management/deployment/test-1.0-SNAPSHOT.war/?operation=attribute&name=enabled-time" 

jedoch, dass als die andere Antwort schwieriger scheint etwas beim Start des Laufens. Ich sehe keine Bereitstellungszeit für eine Webanwendung, da diese Zeit im Falle eines Serverneustarts gespeichert werden müsste.

+0

Bitte beachten Sie, dass nicht den gesamten Server neu starten, um eine neue Version meiner Anwendung zu implementieren, ich lasse es einfach den neuen Build veröffentlichen und starten Sie das Modul neu. Ihr Ansatz zeigt nur die Startzeit des Servers an, nicht die Startzeit des Moduls, oder? –