在JBoss AS 7上使用JSF 2
收到以下错误:
07:36:39,579 SEVERE [javax.enterprise.resource.webcontainer.jsf.application] (http-/172.20.91.126:12580-16)
Error Rendering View[/views/afgarendesok.xhtml]:
com.sun.faces.mgbean.ManagedBeanCreationException:
Unable to set property searchManager for managed bean afgArendeBacking
at com.sun.faces.mgbean.ManagedBeanBuilder$BakedBeanProperty.set(ManagedBeanBuilder.java:615)
searchManager属性在AfgArendeBacking类中定义为:
@ManagedProperty(value="#{afgArendeSokManager}")
private AfgArendeSokManager searchManager;
@Override
public AfgArendeSokManager getSearchManager() {
return searchManager;
}
public void setSearchManager(AfgArendeSokManager searchManager) {
this.searchManager = searchManager;
}
AfgArendeSokManager是@ManionBean,是@SessionScoped。
我无法得到的两件事。其中一个原因是错误关闭了JSF的所有用法,而不仅仅是产生错误的会话。错误似乎在非使用之后出现,低于默认会话超时和超出默认会话超时。另一个奇怪的是,BakedBeanProperty中第606行的空指针异常必须是writeMethod变量。该变量是通过PropertyDescriptor.getWriteMethod()调用创建的。这应该在创建烘焙bean(即bakeBeanProperty方法)时更早被轰炸。
任何想法如何调试?属性" searchManager"正确解析,因为我们可以正常使用JSF视图(getter / setter都存在)。
搜索管理器是我们的会话暂存区,用于在视图和请求范围的后台bean之间传播内容。
答案 0 :(得分:1)
本文解释了使用反射访问具有协变返回类型的方法的问题(请参阅此处:https://dzone.com/articles/covariant-return-type-abyssal)。本文涉及Java 6,但背景信息非常有用。
你本周面临的问题(使用Java 1.7.0_40)不仅仅是EL而是java.beans.Introspector。