JSF 2.0可以与Websphere应用程序服务器版本7.x一起使用

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

如果是这样,怎么样?

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

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

还必须安装修订包7.0.0.19或更高版本 。

Websphere随附JSF 1.2.something并默认加载它。 要使用不同的JSF库(或WS提供的任何其他库,例如commons-logging),您需要更改类加载器对位置进行优先级排序的方式。 他们称之为“父亲最后”意味着加载你的lib然后加载WS版本。

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

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

如果你在PrimeFaces 3.1: primefaces-3.1.1.jar

Application Server实例: Class Loading – Parent Last

企业应用程序实例(战争模块): 类加载 – 父最后

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

逐步将WebSphere Application Server v7上的MyFaces 2.0设置为IBM建议的共享库: 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不支持

我的经验:

– > Windows上的WAS 7.0.0.11

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

– >使用带有隔离类加载器的javax.faces-2.0.11.jar共享库

– > WAS与我的战争应用程序相关的共享库

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

有了这个conf(上面),应用程序可以在WAS 7上使用JSF 2.0。如果我从我的War应用程序中删除了javax.faces-2.0.11.jar,它就不起作用了。

以下为我工作

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

更改web.xml如下

 com.sun.faces.expressionFactory com.sun.el.ExpressionFactoryImpl   com.sun.faces.config.ConfigureListener  

而已 。

嗨,我可以使用这个库运行我的网站

librerias

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

   com.sun.faces.expressionFactory com.sun.el.ExpressionFactoryImpl  

在websphere中配置以加载我的库(Parent Last)

问候

感谢你们!

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

   org.glassfish javax.faces 2.1.29-08   javax.el el-api 2.2   com.sun.el el-impl 2.2  

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

  com.sun.faces.expressionFactory com.sun.el.ExpressionFactoryImpl  

最后将应用程序和模块的WebSphere类加载器顺序更改为(父最后一个)设置: https : //www.ibm.com/support/knowledgecenter/SSAW57_7.0.0/com.ibm.websphere.nd.doc/信息/ AE / AE / urun_rclassloader_inst.html

问候