Websphere Liberty 配置文件:[警告] SRVE0190E:在 EAR 文件中包含的库中找不到文件

Websphere Liberty Profile: [WARNING ] SRVE0190E: File not found in library that is contained in the EAR file

目前我在将 Java 企业项目从旧 WAS-8 迁移到 Liberty Profile 17 时遇到问题。在我的例子中,环境无法在 richfaces jar 中找到一堆 css/js 文件.在浏览器中加载页面,WLP17 将这样的警告写入日志文件:

[WARNING ] SRVE0190E: File not found: /org.richfaces.resources/javax.faces.resource/org.richfaces.staticResource/4.5.17.Final/PackedCompressed/org.richfaces/jquery.js

我使用 maven 构建项目,并在父 pom 中定义了 richfaces 依赖项,如下所示:

<dependency>
    <groupId>org.richfaces</groupId>
    <artifactId>richfaces</artifactId>
    <version>4.5.17.Final</version>
</dependency>

然后,我将几个 EJB 和 WAR 项目打包到一个 EAR 文件中。 WAR 个使用 richfaces 的项目包含一个 richfaces 依赖项,范围提供:

<dependency>
    <groupId>org.richfaces</groupId>
    <artifactId>richfaces</artifactId>
    <scope>provided</scope>
</dependency>

最后,EAR pom对richfaces有依赖,确保库包含在EAR文件中。由于任何原因,自由无法找到位于 richfaces jar 中的资源。

我检查了创建的 EAR 文件,它包含 richfaces 库。然后,我检查了 richfaces 库,其中也包含找不到的文件。

我还需要做什么配置吗?

@wtlucy 的评论确实解决了我的问题。谢谢。

我已将 richfaces 库放入需要这些库的 WAR 文件中。

预期为来自 META-INF/resources/ 的静态文件提供服务的 Jar 库应捆绑在 Web 应用程序 WAR 中。 Servlet 3.0 规范的第 4.6 节是相关的:

The getResource and getResourceAsStream methods take a String with a leading “/” as an argument that gives the path of the resource relative to the root of the context or relative to the META-INF/resources directory of a JAR file inside the web application’s WEB-INF/lib directory...