我正在使用JSP和servlet使用Java EE 7编写Web应用程序,并部署到本地Wildfly 10服务器。
为了帮助我开发和测试我的代码,在显示的网页中加入一点时间戳会很有用,这样我就可以直接看到我在浏览器中看到的版本的部署时间。
这会阻止我忘记部署更改以及查看旧的缓存版本而不是最新版本。
如何直接在网页上显示将Java EE Web应用程序部署到Wildfly服务器的日期和时间?
如果重要的话,我的IDE是Eclipse Neon for Java EE。
答案 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应用程序的部署时间,因为在服务器重新启动的情况下,该时间必须存储在某处。