【问题标题】:CDI Weld and AspectJ - org.jboss.weld.exceptions.UnproxyableResolutionExceptionCDI Weld 和 AspectJ - org.jboss.weld.exceptions.UnproxyableResolutionException
【发布时间】:2011-05-26 19:21:38
【问题描述】:

我在使用 AspectJ 和 CDI 时收到此错误。

org.jboss.weld.exceptions.UnproxyableResolutionException: WELD-001437 普通范围的 bean 类 myPackageName.myClassName 不是 可代理,因为类型是最终的或 它包含一个最终方法静态 最终的 java.lang.String myPackageName.myClassName.myMethodName_aroundBody0(myPackageName.myClassName.,org.aspectj.lang.JoinPoint)。

如果我删除 AspectJ,它会起作用,但我不希望这样。请帮忙。

【问题讨论】:

  • 我可以告诉你发生这种情况的原因,但我不能给你解决方案。有一些关于 myClassName 的建议。环绕通知将静态最终方法放置在字节码中。此方法使您的类不可代理。最好的建议是向 AspectJ 用户邮件列表发送消息。
  • 邮件列表链接:eclipse.org/aspectj/userlists.php
  • 我也想通了。感谢您的链接。

标签: java-ee-6 aspectj cdi jboss-weld


【解决方案1】:

我从 AspectJ 的邮件列表中得到了答案,他们建议添加一个编译时间标志,如果方法应该是最终的,作为一种解决方法。谢谢。

【讨论】:

  • 你找到任何有用的标志了吗?
猜你喜欢
  • 2016-07-02
  • 1970-01-01
  • 2016-02-14
  • 1970-01-01
  • 2013-05-01
  • 1970-01-01
  • 2014-03-21
  • 2014-07-15
  • 2011-02-08
相关资源
最近更新 更多