如何强制WebSphere AS 8使用特定的JSF实现?

我有一个使用WAS 6.1开发的旧企业应用程序,现在我的公司正在尝试在WAS 8中执行该应用程序。但是我在渲染JSF内容时遇到了麻烦,有一些链接在点击JS调试器时说Uncaught ReferenceError: myfaces is not defined为呈现的HTML:

  onclick =“return myfaces.oam.submitForm('top_nav:frmTopNav','top_nav:frmTopNav:lnkCP',null,[['default_sort','name']]);”

所以我认为由于我的旧应用程序和WAS 8之间存在不同版本的JSF,所以它不能很好地呈现它。

现在我决定强制它,用Tomahawk 1.1.7下载MyFaces 1.1并将它们放在WEB-INF / lib文件夹中,现在它说java.lang.IllegalArgumentException - Class org.mything.LocaleViewHandler is no javax.faces.application.ViewHandler

为什么会发生这种情况?

先谢谢你。

引自WAS 8信息中心, 配置JavaServer Faces实现

如果要使用产品未附带的第三方JSF实现,则:

  • 将配置设置为MyFaces。
  • 将第三方侦听器添加到所需的web.xml文件中。
  • 将第三方实现Java归档(JAR)文件作为独立的共享库添加到应用程序,并将其与应用程序关联。

在上面引用的页面上,您可以找到有关创建共享库和将共享库与应用程序或模块关联的详细信息。

确保您使用的是PARENT_LAST类加载。

否则它将首先加载自己的JSF 2.0库,并且您的类与接口不匹配。 您应该检查是否可以更新到MyFaces 2.0。