在war中打包并部署到Weblogic 10.3时找不到MyFacesAPI



我已经将myfaces-api.1.2.2.jar和myfaces-impl.2.2.jar打包到我的war的web-inf/lib目录中。如果我将其作为压缩的war文件部署到weblogic 10.3服务器,则启动日志显示:

信息:FacesConfigurator:339-找不到MyFaces包:MyFaces-api
信息:FacesConfigurator:339-找不到MyFaces包:MyFaces impl
信息:FacesConfigurator:339-MyFaces包:未找到tomahawk沙箱
信息:FacesConfigurator:339-未找到MyFaces包:tomahawk

如果我把jar从war中取出,并把它们放在系统类路径的域的lib目录中,那么一切都很好,启动日志显示:

信息:启动MyFaces包:版本:1.2.2的MyFaces-api,路径:file:/C:/weblogic/user_projects/domains/testDomain/lib/MyFaces-api-1.2.2.jar
信息:启动版本:1.2.2中的MyFaces-impl,路径:file:/C:/weblogic/user_projects/domains/testDomain/lib/MyFaces-imp-1.2.2.jar
信息;未找到MyFaces软件包:tomahawk沙盒
信息:正在从路径:file:/weblogic/user_projects/domains/testDomain/lib/tomahawk-1.1.6启动MyFaces包:版本:1.1.6的tomahawk

我想将其部署为weblogic中的共享库战争。。。所以问题是,当我把myfaces罐子装在战争文件中时,我该如何让它们被识别?

通过查看org.apache.myfaces.config.FacesConfigurator的源代码,它表明它只会查看以jar开头的路径:这解释了为什么在以自定义weblogic模块或domains lib文件夹的形式部署时会发现myfaces jar。

当部署在war文件(zip)中时,路径以zip:开头,并被忽略。因此,作为一项测试,我在添加了以zip开头的路径后,重新编译并重新打包了org.apache.myfaces.config.FacesConfigurator源代码:作为一个可行的检查位置,然后找到了jar。以下是进行更改后服务器启动时的输出:

org.apache.myfaces.config.FacesConfigurator:511)-读取配置zip:C:\weblogic/user_projects/domains/testDomain/servers/AdminServer/tmp/W_L_user/jsf-myfaces/x3xrze/WEB-INF/lib/tomahawk-1.1.6.jar/META-INF/faces-config.xml
org.apache.myfaces.config.FacesConfigurator:570)-读取config/WEB-INF/faces-cnfig.xml
org.apache.miyfaces.cnfig.FacesCoonfigurator:333)-启动myfaces包:myfaces-api,版本:1.2.2,路径:C:/weblogic/user_projects/domains/testDomain/servers/AdminServer/tmp/WEL_user/jsf myfaces/x3xrze/WEB-INF/lib/myfaces s-api-1.2.2.jar
org.apache.myfaces.config.FacesConfigurator:333)-启动myfaces包:myfaces impl,版本:1.2.2,路径:C:\weblogic/user.projects/domains/testDomain/servers/AdminServer/tmp/wEL_user/jsf myfaces/xsxrze/WEB-INF/lib/myfaces-imp-1.2.2.jar

需要注意的是,"myfaces api not found"日志语句在任何方面都不是关键的。。。它只是一个INFO级别的日志,可以忽略。

最新更新