【问题标题】:JSF 2 Issues in Application Servers?应用程序服务器中的 JSF 2 问题?
【发布时间】:2011-08-14 12:14:45
【问题描述】:

我熟悉在 Websphere 7 中使用 JSF 2 时的类加载问题。我想知道其他全栈应用程序服务器上是否存在类似问题。 JBoss 5+、WebLogi 10+ 等呢? JSF 2 是否存在任何已知问题?如果有,需要做什么才能让 JSF 2 在这些服务器上运行?

谢谢

【问题讨论】:

    标签: jsf jboss weblogic websphere


    【解决方案1】:

    在 WebSphere 5.x 和当前 8.x 上,您需要在 WAS 管理控制台中将 WAR 和 EAR 类加载器设置为 PARENT_LAST,只要您想在 /WEB-INF/lib 中捆绑和使用您自己的 JSF impl。

    在 JBoss 4.x 和当前 6.x 上,将以下上下文参数添加到 /WEB-INF/web.xml 就足以抑制 JBoss 的内置 JSF 部署程序。

    <context-param>
        <param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name>
        <param-value>true</param-value>
    </context-param> 
    

    在 Glassfish 2.x 和当前 3.x 之前,您需要将以下条目添加到 /WEB-INF/sun-web.xml(如果您创建目标运行时设置为 Glassfish 的 Web 项目,带有 Glassfish 插件的 Eclipse 应该自动生成模板文件)。

    <class-loader delegate="false" />
    <property name="useBundledJsf" value="true" />
    

    在 Weblogic 上,抱歉我不知道,我从未使用过。

    【讨论】:

    • 感谢提示。在我看来,要求应用服务器附带 JSF 实现以符合标准并不是最好的主意,因为供应商往往需要很长时间才能适应新标准。它给开发人员造成了很多关于如何处理过时的实现的困惑。
    【解决方案2】:

    在 WebLogic 中有一个共享的 Java EE 库,它包含在 WebLogic for JSF 2.0 中。通过部署描述符易于使用和引用。

    【讨论】:

    • 现在很好,也许未来两年。但是如果 JSF 3 发布了呢?我是否必须恢复类加载器层次结构(如在 Websphere 7 中,与 JSF 1.2 一起提供)才能从 WEB-INF/lib 中使用它?
    【解决方案3】:

    这里是 Jeff 提到的库概念的简要操作方法。 http://blog.eisele.net/2009/07/jsf-20-beta-1-on-oracle-weblogic-10gr3.html

    看到最新的 WLS 12c 它仍然存在,但 AFAIK 您最终将不得不在未来恢复 web-app 类加载器以支持这个概念。

    【讨论】:

    • 感谢您的回答。在此期间,我能够在这个问题上获得一些经验。似乎在成熟的应用程序服务器中提供最新的 JSF 版本总是需要摆弄机智的类加载器。更糟糕的是:提供 JSF 的替代版本可能会影响供应商的支持......因此,您的供应商可能会告诉您,尽管您为支持付出了疯狂的金钱,但由于使用了不受支持的 JSF 版本,它不会被授予。因此,如果您使用的是商业应用服务器并希望继续获得支持:坚持使用旧的 JSF 版本,直到供应商发布新版本。
    猜你喜欢
    • 2019-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-24
    相关资源
    最近更新 更多