【问题标题】:Can JSF 2.0 be used with Websphere application server version 7.xJSF 2.0 能否与 Websphere 应用服务器版本 7.x 一起使用
【发布时间】:2010-12-15 16:36:11
【问题描述】:

JSF 2.0 可以与 WebSphere Application Server 7.x 版一起使用吗?

如果有,怎么做?

【问题讨论】:

    标签: java jsf jsf-2 websphere websphere-7


    【解决方案1】:

    WebSphere Infocenter 表示更改为替代 JSF 实现的正确方法是创建一个启用了隔离类加载器选项的 WebSphere 共享库。

    任何需要 JSF 2 的模块都将与新的共享库相关联,然后应用程序将从 JSF 2 而不是 JSF 1.2 开始。

    也是necessary to have fix pack 7.0.0.19 or later installed

    【讨论】:

    • 您谈到了 IBM Infocenter 站点上提供的信息,但您没有提供链接。为什么?
    • 也许我做错了什么,但这对我不起作用。当我按照这些说明进行操作时,它仍在尝试加载 SUN JSF-1.2 参考实现。
    • 好的,我明白了。我需要为 WAS 运行一些修订包并确保 JSF 版本至少为 2.0.4。现在它正在工作。 +1
    • @Joset,现在时间太长了,我不记得所有的步骤了,但是我使用的两个 jar 是 jsf-api.jar 和 jsf-impl.jar,其版本我在之前的评论中列出了。我需要 WAS 7.0.0.19 和 JSF 2.0.4 或更高版本。
    【解决方案2】:

    Websphere 附带 JSF 1.2.something,默认情况下会加载它。要使用不同的 JSF 库(或 WS 提供的任何其他库,例如 commons-logging),您需要更改类加载器确定位置优先级的方式。他们称其为“最后一个父级”,意思是先加载您的库,然后再加载 WS 版本。

    【讨论】:

    • 是的,但是当您有多个应用程序使用旧版本时,不能选择 parent last
    【解决方案3】:

    我这几天一直在努力解决这个问题。这是我解决它的方法。

    使用以下库:javax.faces-2.1.7.jar

    如果您使用的是 PrimeFaces 3.1:primefaces-3.1.1.jar

    Application Server 实例:类加载 - Parent Last

    企业应用程序实例(war 模块):类加载 - Parent Last

    确保删除所有 Servlet 容器库,例如 Tomcat 所需的库。

    【讨论】:

    • 您使用过 GlassFish 实现吗?按 jar 名称搜索表明了这一点。是使用 WebSphere 7.0 吗?
    【解决方案4】:

    按照 IBM 的建议,逐步将 WebSphere Application Server v7 上的 MyFaces 2.0 设置为共享库: http://wasbehindtheglass.blogspot.co.uk/

    我为 Majorra/JSF 2.0.4 应用了类似的步骤,并仅使用 jsf-api.jar 和 jsf-impl.jar 创建了一个共享库。正如@Ian McLaird 所说,需要 WAS 7.0.0.19 和 JSF 2.0.4。 JSF 2.1.x 需要 Servlet 3,WAS7 不支持

    【讨论】:

    • 如果您使用的是 RAD,并且您不想在每次部署应用程序时从 WAS7 管理控制台更改设置共享库,那么您可以包含一个部署描述符(名为 deployment.xml ) 在您的项目中设置共享库。详情见链接:webspheretools.com/sites/webspheretools.nsf/docs/…
    • 您是否尝试过使用 MyFaces 2.1,或者您正在写它不能基于其他来源工作?如果可以,可以发一下吗?
    【解决方案5】:

    我的经验:

    -> Windows 上的 WAS 7.0.0.11

    -> 我的 War 应用程序的 WEB-INF/lib 中的 javax.faces-2.0.11.jar

    -> 使用带有独立类加载器的 javax.faces-2.0.11.jar 共享库

    -> 与我的 War App 关联的共享库

    -> 实例和应用程序的类加载器没有变化 (PARENT_FIRST)

    有了这个配置(上图),应用程序可以在 WAS 7 上与 JSF 2.0 一起正常工作。 如果我从我的 War 应用程序中删除 javax.faces-2.0.11.jar,它不起作用。

    【讨论】:

      【解决方案6】:

      以下对我有用

      • 创建一个共享库并将 JSF 2.0 jar 放入其中。
      • 还要添加 EL 2.2 API 和 EL-Impl 2.2 jar,因为 JSF 2.0 隐式需要这个。
      • 将此库添加到您的应用程序并将类加载器首选项设置为 PARENT_LAST。

      如下修改web.xml

       <context-param>
                      <param-name>com.sun.faces.expressionFactory</param-name>
                      <param-value>com.sun.el.ExpressionFactoryImpl</param-value>
          </context-param>
          <listener>
              <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
          </listener>
      

      就是这样。

      【讨论】:

        【解决方案7】:

        您好,我可以使用这个库来运行我的网站

        在我的项目的 web.xml 中配置

         <context-param>
            <param-name>com.sun.faces.expressionFactory</param-name>
            <param-value>com.sun.el.ExpressionFactoryImpl</param-value>
        </context-param>
        

        在 websphere 中配置以加载我的库(上一个父级)

        问候

        【讨论】:

          【解决方案8】:

          谢谢你们!

          它适用于较新版本的 javax.faces。查看 Maven 依赖项:

              <dependency>
                  <groupId>org.glassfish</groupId>
                  <artifactId>javax.faces</artifactId>
                  <version>2.1.29-08</version>
              </dependency>
              <dependency>
                  <groupId>javax.el</groupId>
                  <artifactId>el-api</artifactId>
                  <version>2.2</version>
              </dependency>
              <dependency>
                  <groupId>com.sun.el</groupId>
                  <artifactId>el-impl</artifactId>
                  <version>2.2</version>
              </dependency>
          

          不要忘记在 web.xml 中添加以下内容:

          <context-param>
             <param-name>com.sun.faces.expressionFactory</param-name>
             <param-value>com.sun.el.ExpressionFactoryImpl</param-value>
          </context-param>
          

          最后将应用程序和模块的WebSphere类加载器顺序改为(parent last)设置: https://www.ibm.com/support/knowledgecenter/SSAW57_7.0.0/com.ibm.websphere.nd.doc/info/ae/ae/urun_rclassloader_inst.html

          问候

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-03-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多