在初始化JAX-RS时读取manifest.mf

时间:2018-04-01 16:47:11

标签: java jax-rs jersey-2.0

我正在尝试在初始化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。这有什么不对?

0 个答案:

没有答案