由于某种原因(想知道为什么......)在创建我的bean之后(作为ValueExpressionImpl的结果:#{admin.userLocale}
(我在构造函数的断点中的堆栈跟踪中看到它) ,紧接着我的phaselistener在调用以下命令时失败(异常)
return context.getApplication().evaluateExpressionGet(context,
"#{myBean}", myBean.class);
上面代码的执行第二次触发构造函数 - 为什么?
奇怪的是,我得到了确切的机制正常工作(bean构造函数调用 - >阶段监听器调用“命令”(不再调用bean构造函数))在许多其他应用程序中...但在那个特定的应用它不工作。
另外一个重要的注意事项,使用MyFaces 2.0.11这款应用可以正常使用
我检查了faces-config / web.xml与其他应用程序一样的双重和三重检查
从MyFaces JSF 2.0.11迁移到2.2.3后我得到的例外是:
javax.faces.view.facelets.TagAttributeException:/ viewMetadata/myPage.xhtml at line 13 and column 38 locale =“#{myBean.userLocale}”null
...
引起:java.lang.NullPointerException 在org.apache.myfaces.config.ManagedBeanBuilder.getScope(ManagedBeanBuilder.java:560)
我做了一些谷歌并找到了以下MYFACES-3907,我甚至尝试应用修复程序,但它只是删除了异常,但我的webapp仍然不好
p.s其中@SessionScoped
和getApplication().evaluateExpressionGet
被调用的阶段ID为RESTORE_VIEW
关于如何找出导致问题的原因的任何想法?
谢谢!
答案 0 :(得分:1)
发现问题......虽然我不知道为什么(确实有一些理论)
在我的那个豆里有一个ManagedProperty
......
@ManagedProperty(value = "#{error}")
private ErrorPageMBean error; //with getter/setter
那个有管理的财产已存在多年,甚至没有使用过。再一次,它在MyFaces 2.0.11中运行得很好......
我删除它的那一刻开始工作得很好......
有什么想法ManagedProperty
?