[英]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.