如何从Web应用程序中的类中访问ear的Manifest文件?

时间:2015-12-15 12:49:55

标签: java manifest ear

我想从位于耳内的Web应用程序中的类中访问EAR的清单文件中定义的属性。有没有办法访问它。目前,我通过传递属性名称/值来访问正确的清单文件使用以下代码,然后我将添加更多代码以获取我所需属性的值。

public static Manifest getManifest(Class<?> cls, String entryName, String entryValue) throws IOException
{
    Manifest retManifest = null;
    boolean matchFound = false;
    Class<?> srcClass = cls == null ? this.class : cls;
    Enumeration<URL> resources = srcClass.getClassLoader().getResources("META-INF/MANIFEST.MF");

    while (resources.hasMoreElements() && matchFound == false)
    {
        URL u = resources.nextElement();
        Manifest manifest = new Manifest(u.openStream());
        if (manifest != null)
        {
            Attributes atr = manifest.getMainAttributes();
            if (atr != null && atr.keySet() != null)
            {
                Iterator<Object> atrIr = atr.keySet().iterator();
                while (atrIr.hasNext() && matchFound == false)
                {
                    Object atrKey = atrIr.next();
                    if (atrKey != null && atrKey.toString().equals(entryName))
                    {
                        if (atr.get(atrKey) != null && atr.get(atrKey).toString().equals(entryValue))
                        {
                            retManifest = manifest;
                            matchFound = true;
                            break;
                        }
                    }
                }
            }
        }
    }
    return retManifest;
}

我的问题是代码运行正常并扫描来自各种jar文件的所有清单,但它不知何故找不到耳朵的META-INF文件夹下的清单文件。有人可以帮我找到相同的东西。

0 个答案:

没有答案