使用maven get编译* .war文件,其中包含:
- META-INF
- - MANIFEST.MF
- WEB-INF
- - classes
- - lib
- - web.xml
使用java.util.jar.Manifest我想读取清单文件以从https://stackoverflow.com/a/21046257/1728511
中获取应用程序版本但Application.class.getResourceAsStream("/META-INF/manifest.mf")
会返回null
。
Application.class.getResource( "" ).getFile()
返回%WAR%/WEB-INF/lib/javax.ws.rs-api-2.0.jar!/javax/ws/rs/core/
使用Spring,我已经实现了ApplicationContextAware接口来获取ApplicationContext实例。
而applicationContext.getClassLoader().getResourceAsStream( "" )
会返回%WAR%/WEB-INF/classes
。
但我不需要WEB-INF
,我需要META-INF
目录。如何获得它?
答案 0 :(得分:3)
你正在混合案件。您的META-INF
包含MANIFEST.MF
,但您正尝试在manifest.mf
上打开资源流。
你必须改变
Application.class.getResourceAsStream("/META-INF/manifest.mf")
到
Application.class.getResourceAsStream("/META-INF/MANIFEST.MF")