将部署时间戳包含在JSP页面中

时间:2016-10-17 13:20:58

标签: java jsp java-ee deployment wildfly

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

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

这会阻止我忘记部署更改以及查看旧的缓存版本而不是最新版本。

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

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

2 个答案:

答案 0 :(得分:1)

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

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

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

除此之外,我只能想到Maven Git Plugin可以生成像buildtime,commit id,...这样的东西到一个属性文件中,你也可以用它来在页面上显示它(如果你使用git /行家)。

答案 1 :(得分:1)

可能还有一个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 Management Docs使用一个小样本Java片段进行更详细的介绍。

修改的: 抱歉 - 不应该假设服务器在部署时重新启动。您可以通过以下方式获取Web应用程序的部署时间:

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

然而,这似乎比在启动时运行某些东西的其他答案更难。我没有看到Web应用程序的部署时间,因为在服务器重新启动的情况下,该时间必须存储在某处。