我一直找不到找到使用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));