Java/JSF/Tomcat/Spring - Proxy-Object与原始对象有不同的方法

Rob*_* M. 10 java spring proxy-classes classloader tomcat7

今天我遇到了这个问题,这真的让我烦恼,因为几乎代码已经运行了(并且即使在恢复到旧版本之后也停止了工作).

我正在Facelets-Page上访问一个Spring-Bean.Spring在Proxies中包装这些对象以使用方面和其他一些东西.

问题是,我在尝试访问bean的属性时遇到异常.例外是这样的:

javax.el.PropertyNotFoundException: /customers.xhtml @23,27 value="#{customerBean.customer}": Property 'customer' not found on type $Proxy88
Run Code Online (Sandbox Code Playgroud)

我肯定知道(!!)有相应的getter/setter方法.到目前为止我尝试的事情:

  • 将应用程序部署到另一个tomcat安装
  • 清除所有tomcat-caches,webapp目录
  • 清理eclipse项目
  • 使用javap(以及那里的方法/属性)检查相应的方法
  • 更改bean的范围
  • 更改bean的类名
  • 更改spring bean-id
  • 更改bean的serialVersionUID

无论我做什么,类都不正确地被类加载器正确包装或者没有正确加载.

有谁知道什么可能导致像这样的问题?我不知道该怎么做,所以任何建议都非常感谢!

提前致谢!

问候,罗伯特

Ste*_*fen 1

如果加载时间编织未正确配置,通常会发生这些错误。确保您不仅配置了加载时间编织器,而且还加载了适当的 java 代理,或者应用程序服务器为您执行了该操作。

有关如何配置此环境的更多信息,请参阅 spring 文档,例如第 7.8.4.6 章环境特定配置。虽然这涵盖了 AOP 的加载时间挥动主题,但对于需要加载时间挥动的 Spring 其他部分来说,它的配置是相同的。