目前我在将旧的WAS-8的Java Enterprise项目迁移到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文件。使用richfaces的WAR项目包含richfaces依赖项,并提供了范围:
<dependency>
<groupId>org.richfaces</groupId>
<artifactId>richfaces</artifactId>
<scope>provided</scope>
</dependency>
最后,EAR pom依赖于richfaces来确保库包含在EAR文件中。由于任何原因,自由无法找到位于richfaces jar中的资源。
我检查了创建的EAR文件,它包含richfaces库。然后,我检查了richfaces库,还包含了找不到的文件。
我还有其他配置吗?
期望从META-INF / resources /提供静态文件的Jar库应该捆绑在Web应用程序WAR中。 Servlet 3.0规范的4.6节是相关的:
getResource和getResourceAsStream方法采用带有前导“/”的String作为参数,该参数提供相对于上下文根的资源路径或相对于Web应用程序WEB内JAR文件的META-INF / resources目录的路径-INF / lib目录......
@ wtlucy的评论确实解决了我的问题。谢谢。
我已将richfaces库放入需要这些库的WAR文件中。