使用Wicket从超级/抽象类调用方法时,焊接注入失败

时间:2010-08-04 00:46:59

标签: java ejb wicket jboss-weld

我遇到焊接检票口的问题。当@Inject一个继承自抽象类的EJB时,如果我尝试从抽象类调用一个方法,我会得到一个ejb-ref错误。 但是,如果我从具体类中调用一个方法,它就可以完美地运行。我可以覆盖方法并调用它们,我可以将重写的方法委托给抽象类(具有重写的方法调用super.method())并且可以工作。我是否需要对抽象类进行某种配置?

感谢。

1 个答案:

答案 0 :(得分:1)

根据我对Seam的经验,这是猜测。 Weld注入一个包装你的bean的代理。代理只拦截公共方法并将它们委托给底层bean(在您的情况下为EJB)。当您在代理上调用受保护的方法或从同一个包中的类调用package-private方法时,该方法不会被截获,并且会直接在代理上调用,从而导致您的错误。为了简化故事,只需通过接口调用公共方法或备份所有依赖项并注入它。