我正在尝试在Java servlet中读取自己的MANIFEST.MF资源。我的情况是:我有一个WAR文件(其中包含我想要读取的清单),它位于EAR文件内部。 EAR文件中有其他几个WAR和JAR文件,类路径非常长。
我尝试了在Web上找到的几种方法,包括StackOverflow。
我可以使用以下方式读取所有MANIFEST.MF文件:
this.getClass().getClassLoader().getResources("META-INF/MANIFEST.MF");
我需要遍历它们,但是我不知道哪一个是我的 - 我甚至不知道 Implementation-Title 是什么,因为这是由构建管道生成的。(我可以根据构建管道的知识猜测,因此我知道正确的清单在那里。但是,在生产代码中我不能猜测。)
当然,
this.getClass().getClassLoader().getResourceAsStream("META-INF/MANIFEST.MF");
从类路径上返回来自其他jar包的完全错误清单。
我也尝试过
this.getServletContext().getResourceAsStream("META-INF/MANIFEST.MF");
但它返回了一个空值。
如何访问包含当前运行的servlet的WAR文件的MANIFEST.MF文件?