当前位置: 首页 > 知识库问答 >
问题:

如何读取jar依赖关系中的war文件清单?

狄峰
2023-03-14

如何读取其jar-依赖关系中的war-file清单属性?

UPD:这里不使用servlet(这是Springbean初始化代码)。

共有1个答案

白光耀
2023-03-14

自a。war文件的目的是处理servlet,我假设您的所有代码都是从servlet调用的,或者是从构建在servlet上的技术调用的,比如JSP、JSF,甚至是Spring。

调用当前请求的getServletContext()方法,并使用ServletContext的getResource或getResourceAsStream方法。这些方法的工作方式与java的相同。班上,只有他们在看。在搜索web应用程序的类路径以查找匹配路径之前,war文件本身。

例如:

public Optional<Manifest> getWarManifest(ServletRequest request)
throws IOException {

    InputStream manifest =
        request.getServletContext().getResourceAsStream(
            "/META-INF/MANIFEST.MF");

    if (manifest == null) {
        return Optional.empty();
    }

    try (InputStream stream = new BufferedInputStream(manifest)) {
        return Optional.of(new Manifest(stream));
    }
}

更新时间:

由于您希望在准备Spring bean时读取清单,因此您似乎可以自动关联ServletContext对象:

@Configuration
public class MyAppConfig {
    @Bean
    public MyBean createMyBean(@Autowired ServletContext context)
    throws IOException {

        Optional<Manifest> manifest;

        InputStream source =
            context.getResourceAsStream("/META-INF/MANIFEST.MF");

        if (source == null) {
            manifest = Optional.empty();
        } else {
            try (InputStream stream = new BufferedInputStream(source)) {
                manifest = Optional.of(new Manifest(stream));
            }
        }

        return new MyBean(manifest);
    }
}
 类似资料:
  • 问题内容: 最近,我接受了用JSF编写的Web系统的支持和编程。代码有点凌乱和多余,是的,​​不存在任何文档。 该系统具有40多个jar库,由于旧版本和测试,其中大多数是冗余的。要删除一个jar,我必须检查它是否未在代码中导入,因此我在代码中搜索了jar导入路径(我正在使用IntelliJ IDE),确保未使用它,然后将其删除。 但是,在编译代码后,在测试过程中发生了许多运行时错误。我发现我删除了

  • 我有一个依赖于2 jar文件的应用程序: 操作员界面。罐子 操作员。震击器 我想使用Maven结构构建我的项目。我按照Maven站点教程创建了如下结构: 我已经把我的源文件FileProcess.javaE:\project\src\main\java\source\app。 FileProcess在2 external中具有依赖关系。jar文件,但我不知道如何在pom中定义这种依赖关系。xml。

  • 我试图使用gradle和以下指令指定一些jar依赖项: http://gradle.org/docs/current/userguide/dependency_management.html#sub:file_dependencies 当我从windows cmd运行gradle时,我得到: 我错过了什么?

  • 我是毕业生的新手,我需要配置我的构建.gradle文件。我正在使用硒网络驱动程序,我有.jar文件列表。我如何将此jar文件作为依赖项包含在我的build.gradle文件中?我有这个.jar在我的包中一个名为lib的文件夹中。我有 }但是我一直有下面的错误: 失败:生成失败,出现异常。 其中:构建文件“/主页/ola/工作区/构建分级”行: 20 出错了:评估根项目“工作区”时出现问题。无法将对

  • 我想构建这个项目,以便最终的jar在一个jar文件中包含所有依赖项(如果不可能的话,包括从依赖项到jar文件的类),我遵循了线程Including dependencies in a jar with Maven,但它也包含了我在pom中甚至没有提到的依赖项。这是我的POM,它只有两个依赖项。 我想当Final构建时,它包括pom中提到的特定依赖项(以类或jar形式)

  • 问题内容: 我正在使用Spring 3和Hibernate 4 JPA。我对 javax.persistence JAR 感到困惑。我在Google上发现了以下两个Maven依赖项。请告诉我以下两个依赖项中需要哪个? 问题答案: 其中的第一个是API Jar,它定义了应用程序应使用的与供应商无关的接口。 第二个是该API的EclipseLink实现。 可以删除对第一个依赖项的引用,而只需使用Ecl