我正在尝试在初始化JAX-RS时从MANIFEST.MF读取信息。我使用Glassfish应用服务器。
我的第一个想法是使用以下代码:
Properties prop = new Properties();
prop.load(getClasses().getClass().getResourceAsStream("/META-INF/MANIFEST.MF"));
String version = prop.getProperty("Implementation-Version");
但是这段代码从另一个MANIFEST.MF读取信息,而不是从我的WAR读取信息所以我需要使用ServletContext:
package com.remal.forum.service.configuration.rest;
import java.io.InputStream;
import java.util.jar.Manifest;
import javax.servlet.ServletContext;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
import javax.ws.rs.core.Context;
@ApplicationPath("api")
public class Configurator extends Application {
@Context
protected ServletContext servletContext;
public Configurator() {
...
InputStream inputStream = servletContext.getResourceAsStream("/META-INF/MANIFEST.MF");
Manifest manifest = new Manifest(inputStream);
manifest.getAttributes("Implementation-Version");
...
}
}
但是注入的servletContext始终为null。这有什么不对?