繁体   English   中英

在JSP页面中包括部署时间戳

[英]Include deployment timestamp into JSP page

我正在使用JSP和servlet用Java EE 7编写Web应用程序,并将其部署到本地Wildfly 10服务器。

为了帮助我开发和测试代码,在显示的网页中包含一些时间戳会很有用,这样我就可以直接查看在浏览器中查看的版本何时部署。

这将防止我既忘记部署更改,又避免查看旧的缓存版本而不是最新版本。

如何在网页上直接显示将Java EE Web应用程序部署到Wildfly服务器的日期和时间?

如果重要的话,我的IDE是Java EE的Eclipse Neon。

这不是部署时间,而是应用程序的启动时间。 也许对您的目的有用。 您可以注入类并使用它在页面上显示数据。

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

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

除此之外,我只能想到Maven Git插件 ,它可以将诸如buildtime,commit id等信息生成到属性文件中,也可以将其显示在页面上(如果使用git / maven)。

也可能有API可以执行此操作,但是您可以从命令行获取服务器的启动时间。 假设您已设置管理员用户名和密码(即,您已经运行过类似add-user.sh的内容),则可以运行:

curl --digest "http://user:password@localhost:9990/management/core-service/platform-mbean/type/runtime?operation=attribute&name=start-time"

当然,这不是Java-您必须对此执行System.exec或使用HttpClient之类的东西。 此外,这里的主要问题是您必须为代码提供管理员用户名和密码。

Wildfly HTTP管理文档通过一个小示例Java代码片段进一步介绍了一些细节。

编辑 :对不起-不应该假定服务器在部署时重新启动。 您可以通过以下方式获取Web应用程序的部署时间:

curl --digest "http://user:password@localhost:9990/management/deployment/test-1.0-SNAPSHOT.war/?operation=attribute&name=enabled-time"

但是,这似乎比在启动时运行某些内容的其他答案更困难。 我看不到Webapp的部署时间,因为如果服务器重新启动,则该时间必须存储在某个地方。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM