Jsf 在部署到Weblogic 10.3的war中打包时未找到MyFaces api

Jsf 在部署到Weblogic 10.3的war中打包时未找到MyFaces api,jsf,weblogic,war,jsf-1.2,myfaces,Jsf,Weblogic,War,Jsf 1.2,Myfaces,我已经将myfaces-api.1.2.2.jar和myfaces-impl.1.2.2.jar打包到war的web inf/lib目录中。如果我将其作为压缩war文件部署到weblogic 10.3服务器,启动日志将显示: 信息:Faces配置程序:339-MyFaces包:找不到MyFaces api。 信息:Faces配置程序:339-MyFaces包:找不到MyFaces impl。 信息:Faces配置程序:339-MyFaces包:未找到tomahawk沙盒。 信息:Faces配置程

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

信息:Faces配置程序:339-MyFaces包:找不到MyFaces api。 信息:Faces配置程序:339-MyFaces包:找不到MyFaces impl。 信息:Faces配置程序:339-MyFaces包:未找到tomahawk沙盒。 信息:Faces配置程序:339-MyFaces软件包:未找到tomahawk

如果我将JAR从war中取出,并将它们放入系统类路径的域的lib目录中,那么所有这些都可以正常工作,启动日志显示:

信息:从路径:file:/C:/weblogic/user\u projects/domains/testDomain/lib/MyFaces-api-1.2.2.jar启动MyFaces包:版本为1.2.2的MyFaces api 信息:从路径:file:/C:/weblogic/user\u projects/domains/testDomain/lib/MyFaces-impl-1.2.2.jar启动MyFaces包:版本为1.2.2的MyFaces impl 信息:MyFaces包:未找到tomahawk沙盒。 信息:从路径:file:/C:/weblogic/user\u projects/domains/testDomain/lib/tomahawk-1.1.6.jar启动版本为1.1.6的MyFaces包:tomahawk


我想把它部署为weblogic中的共享库战争。。。所以问题是,当打包到war文件中时,如何才能识别myfaces jar?

通过查看org.apache.myfaces.config.FacesConfigurator的源代码,可以看出它只会查看以jar开头的路径:这解释了为什么在以自定义weblogic模块或在域库文件夹中

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

org.apache.myfaces.config.FacesConfigurator:511-Reading config zip:C:/weblogic/user\u projects/domains/testDomain/servers/AdminServer/tmp/\u WL\u user/jsf myfaces/x3xrze/WEB-INF/lib/tomahawk-1.1.6.jar/META-INF/faces-config.xml org.apache.myfaces.config.FacesConfigurator:570-Reading config/WEB-INF/faces-config.xml org.apache.myfaces.config.FacesConfigurator:333-从路径C:/weblogic/user_projects/domains/testDomain/servers/AdminServer/tmp/_WL_user/jsf myfaces/x3xrze/WEB-INF/lib/myfaces-api-1.2.jar启动myfaces包:1.2.2版本中的myfaces api org.apache.myfaces.config.FacesConfigurator:333-从路径C:/weblogic/user_projects/domains/testDomain/servers/AdminServer/tmp/_WL_user/jsf myfaces/x3xrze/WEB-INF/lib/myfaces-impl-1.2.2.jar启动myfaces包:1.2.2版本中的myfaces impl


需要注意的重要一点是,“myfaces api not found”日志语句在任何方面都不是关键的。。。它只是一个信息级日志,可以忽略。

您能尝试将首选web inf类添加到weblogic.xml吗?