我遇到焊接检票口的问题。当@Inject一个继承自抽象类的EJB时,如果我尝试从抽象类调用一个方法,我会得到一个ejb-ref错误。 但是,如果我从具体类中调用一个方法,它就可以完美地运行。我可以覆盖方法并调用它们,我可以将重写的方法委托给抽象类(具有重写的方法调用super.method())并且可以工作。我是否需要对抽象类进行某种配置?
感谢。
答案 0 :(得分:1)
根据我对Seam的经验,这是猜测。 Weld注入一个包装你的bean的代理。代理只拦截公共方法并将它们委托给底层bean(在您的情况下为EJB)。当您在代理上调用受保护的方法或从同一个包中的类调用package-private方法时,该方法不会被截获,并且会直接在代理上调用,从而导致您的错误。为了简化故事,只需通过接口调用公共方法或备份所有依赖项并注入它。