1

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

信息:FacesConfigurator:339 - MyFaces-package:未找到 myfaces-api。
信息:FacesConfigurator:339 - MyFaces-package:未找到 myfaces-impl。
信息:FacesConfigurator:339 - MyFaces-package:未找到 tomahawk-sandbox。
信息:FacesConfigurator:339 - MyFaces-package:找不到战斧。

如果我将罐子从战争中取出并将它们放入系统类路径的域的 lib 目录中,那么一切正常并且启动日志显示:

信息:启动 MyFaces-package:myfaces-api 版本:1.2.2 从路径:file:/C:/weblogic/user_projects/domains/testDomain/lib/myfaces-api-1.2.2.jar
信息:启动 MyFaces -package:myfaces-impl 版本:1.2.2 来自路径:file:/C:/weblogic/user_projects/domains/testDomain/lib/myfaces-impl-1.2.2.jar
信息:MyFaces-package:不是 tomahawk-sandbox成立。
信息:启动 MyFaces-package:tomahawk 版本:1.1.6 从路径:file:/C:/weblogic/user_projects/domains/testDomain/lib/tomahawk-1.1.6.jar

我想将它部署为 weblogic 中的共享库战争......所以问题是我如何才能让 myfaces 罐子在包装在战争文件中时被识别?

4

1 回答 1

0

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

当部署在 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/_WL_user/jsf-myfaces/x3xrze/WEB-INF/lib/tomahk- 1.1.6.jar!/META-INF/faces-config.xml
org.apache.myfaces.config.FacesConfigurator:570) - 读取配置 /WEB-INF/faces-config.xml
org.apache.myfaces.config.FacesConfigurator :333) - 启动 MyFaces-package : myfaces-api in version : 1.2.2 from path : C:/weblogic/user_projects/domains/testDomain/servers/AdminServer/tmp/_WL_user/jsf-myfaces/x3xrze/WEB-INF /lib/myfaces-api-1.2.2.jar
org.apache.myfaces.config.FacesConfigurator:333) - 启动 MyFaces-package : myfaces-impl in version : 1.2.2 from path : C:/weblogic/user_projects/domains/testDomain/servers/AdminServer/tmp/_WL_user/ jsf-myfaces/x3xrze/WEB-INF/lib/myfaces-impl-1.2.2.jar

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

于 2012-11-21T20:24:11.670 回答