gpt4 book ai didi

jsf-2 - getApplication().evaluateExpressionGet 尝试创建新实例(jsf 2.0 -> 2.2 迁移问题?)

转载 作者:行者123 更新时间:2023-12-02 03:32:54 24 4
gpt4 key购买 nike

出于某种原因(想知道为什么......)在创建我的 bean 之后(作为 ValueExpressionImpl 的结果:#{admin.userLocale}(我在堆栈跟踪中看到它构造函数的断点),紧接着当我的 phaselistener 在调用以下命令时失败(异常)

return context.getApplication().evaluateExpressionGet(context,
"#{myBean}", myBean.class);

上面代码的执行第二次触发了构造函数——为什么?

奇怪的是,我在许多其他应用程序中得到了确切的机制工作得很好(bean 构造函数调用 -> 阶段监听器调用“the”命令(不再调用 beans 构造函数))......但在那个特定的应用程序中它不工作。

还有一个重要提示,这个应用程序在 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

...

Caused by: java.lang.NullPointerException at org.apache.myfaces.config.ManagedBeanBuilder.getScope(ManagedBeanBuilder.java:560)

我用谷歌搜索了一下,发现了以下 MYFACES-3907我什至尝试应用修复程序,但它所做的只是删除异常,但我的 webapp 仍然不好

p.s 它是 @SessionScoped 并且调用 getApplication().evaluateExpressionGet 的阶段 ID 是 RESTORE_VIEW

关于如何找出导致问题的原因的任何想法?

谢谢!

最佳答案

找到问题了...虽然我真的不知道为什么(确实有一些理论)

在我的那个 bean 中有一个 ManagedProperty...

@ManagedProperty(value = "#{error}")
private ErrorPageMBean error; //with getter/setter

该托管属性(property)存在多年,甚至未被使用。再次在 MyFaces 2.0.11 中一切正常......

我删除它的那一刻开始一切正常......

知道 ManagedProperty 有什么问题吗?

关于jsf-2 - getApplication().evaluateExpressionGet 尝试创建新实例(jsf 2.0 -> 2.2 迁移问题?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25611687/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com