我一直找不到找到使用Tomcat 7版本化命名部署的WAR文件的版本字符串的简单方法(即app ## version.war )。您可以阅读关于它here以及它可以使here。Tomcat 7 - 检索Web应用程序的版本(版本化的WAR)
这会是很好,如果有比反射供电胸腔破裂通常的瑞士军刀等一个较为支持的方法:
final ServletContextEvent event ...
final ServletContext applicationContextFacade = event.getServletContext();
final Field applicationContextField = applicationContextFacade.getClass().getDeclaredField("context");
applicationContextField.setAccessible(true);
final Object applicationContext = applicationContextField.get(applicationContextFacade);
final Field standardContextField = applicationContext.getClass().getDeclaredField("context");
standardContextField.setAccessible(true);
final Object standardContext = standardContextField.get(applicationContext);
final Method webappVersion = standardContext.getClass().getMethod("getWebappVersion");
System.err.println("WAR version: " + webappVersion.invoke(standardContext));