今天我碰到这个问题,真的让我感到困扰,因为几乎代码已经工作(即使在恢复到旧版本后也停止工作)。Java/JSF/Tomcat/Spring - 代理对象有不同的方法比原始对象
我在Facelets-Page上访问Spring-Bean。 Spring将这些对象包装在代理中以使用方面和其他一些东西。
问题是,当我试图访问一个bean的属性时,我得到一个异常。例外是这样的:
javax.el.PropertyNotFoundException: /customers.xhtml @23,27 value="#{customerBean.customer}": Property 'customer' not found on type $Proxy88
我知道肯定(!!),相应的getter/setter方法在那里。 事情我试过至今:
- 将应用程序部署到其他Tomcat的安装
- 全部清除Tomcat的缓存,webapp的目录
- 清洁日食项目
- 检查为依据的方法使用javap(以及其中的方法/属性)
- 更改该bean的范围
- 更改该bean的类名称
- 更改的Spring bean-ID
- 更改豆
无论我做什么的的serialVersionUID,该类是有点不正确包裹或由类加载器无法正确加载。
有没有人有一个想法可能会导致这样的问题?我不知道要额外尝试什么,所以非常感谢任何建议!
在此先感谢!
问候, 罗伯特
你说“Spring将这些对象包装在代理中”。你如何配置它来做到这一点?什么机制?什么配置? – skaffman
那么没有配置,因为春天默认是这样。这是需要做的事情,如自动装配属性,而无需setter方法。 –
Spring默认不会这样做。某个地方,你告诉它要这么做。通过现场注入进行自动装配是通过反射来完成的,而不是代理。 – skaffman