添加JSF 2.2导致“找到所需类javax.faces.FactoryFinder的多个版本”

时间:2013-09-01 13:22:52

标签: eclipse jsf

我想知道如何在Eclipse中使用JSF 2.2(而不是2.0.2)?

似乎没有官方发布(只有majorra 2.0和myfaces 2.0.2可用) 当我手动添加jsf 2.2 impl和api(Project Facets)时,它告诉我:" 找到所需类javax.faces.FactoryFinder的多个版本。"。 当我删除旧的(myfaces 2.0.2)tomcat失败...

有没有办法让eclipse默认运行JSF 2.2?

1 个答案:

答案 0 :(得分:1)

如果已启用构面,则可以将库添加到类路径中或在jsf首选项中配置它。在第一种方式中,您没有告诉Eclipse您正在使用JSF,第二种方式是您告诉它,您可以自己选择配置类路径,或者让Eclipse选择您想要使用哪些JSF jar来包含它们。

首先,您需要从Mojarra'sMyFaces'es网站下载广告。 MyFaces目前尚未实施2.2版本。

要将库添加到类路径中,请右键单击该项目,然后转到属性,Java构建路径。然后单击添加JAR 添加外部JAR ,具体取决于jar的位置,并添加jsf-api和jsf-impl jar。

enter image description here

否则,如果您将项目配置为JSF项目,首先必须启用JSF方面,检查 Project Facets 。然后Eclipse将在 Project Facets 中创建一个子菜单,让您配置JSF。您可以选择禁用库配置并按以前的方式执行操作或选择用户库

enter image description here

然后单击书籍图标,您可以添加新的用户库。添加后,您只需添加所需的罐子。请记住,您需要jsf-api和jsf-impl jar来使其正常工作,因为Tomcat是一个普通的servlet容器,并且不包含任何开箱即用的JSF实现。

或者,您也可以将jsf-impl直接放在Tomcat共享库文件夹中。您应该将其放在$CATALINA_HOME/lib中,并且您部署的每个应用程序都将使用相同的实现。通过这种方式,您可以从项目和代码中引用jsf-api,将实现本身放入服务器的类路径中。