将Primefaces从3.2更新到3.4会抛出java.lang.NoSuchFieldError:SKIP_ITERATION

时间:2012-08-29 07:11:45

标签: java jsf java-ee jsf-2 primefaces

我用primefaces-3.4 RC1替换了primefaces-3.2。之后,如果我打开任何页面,则会抛出java.lang.NoSuchFieldError: SKIP_ITERATION异常。可能出现什么问题?

2 个答案:

答案 0 :(得分:3)

这是与myfaces和某些版本的mojarra的兼容性问题

两周前我在primefaces论坛上报道了Failed attempt to replace 3.2 with 3.4.RC1

它已经修复,所以你可以从存储库3.4-SNAPSHOT中获取3.4的最新快照版本

答案 1 :(得分:3)

  

java.lang.NoSuchFieldError:SKIP_ITERATION

因此,您的JSF运行时环境中没有这样的字段。 VisitHint#SKIP_ITERATION已在JSF 2.1中引入。另请参阅javadoc

  

SKIP_ITERATION

     

public static final VisitHint SKIP_ITERATION

     

提示表示通常以迭代方式多次访问子项的组件(例如UIData)应该只访问每个子项一次。

     

     

2.1

这个NoSuchFieldError表明您实际上使用的是JSF 2.0而不是JSF 2.1。虽然PrimeFaces确实依赖于JSF 2.1特定的增强功能,而他们将自己指定为兼容JSF 2.0(并因此将其作为一个bug报告给他们;显然已经由Daniel完成),理论上你也可以解决它它通过将JSF 2.0升级到JSF 2.1。 Mojarra和MyFaces 2.1.x版本是JSF 2.1实现。