【发布时间】:2014-04-09 03:04:12
【问题描述】:
当 JSF 托管 bean 扩展抽象控制器时,我得到 Unsatisfied dependencies 异常。我在 AbstractController 中有方法,我想在 PoliceCaseList Bean 中覆盖这些方法。但是,我得到以下例外:我尝试阅读 here 和 here ,但我的情况似乎不同。
例外
javax.servlet.ServletException: WELD-001408 在注入点 [[BackedAnnotatedField] @Inject private ijmiscrudgen.backing.AbstractController.ejbFacade] 带有限定符 [@Default] 的类型 [AbstractFacade] 的依赖关系不满足
根本原因
org.jboss.weld.exceptions.IllegalArgumentException: WELD-001408 在注入点 [[BackedAnnotatedField] @Inject private ijmiscrudgen.backing.AbstractController.ejbFacade] 带有限定符 [@Default] 的类型 [AbstractFacade] 的依赖关系不满足
@ManagedBean
@ViewScoped
public class PoliceCaseList extends AbstractController<TblCase>{
@Inject
private TblCaseFacade caseFacade;
private TblCasePerson selectedPerson;
private TblCase selected;
@ManagedProperty(value = "#{loginController}")
private LoginController loginController;
/**
* Creates a new instance of PoliceCaseList
*/
public PoliceCaseList() {
}
这是抽象控制器。这个控制器有我一直想重写的方法。带有 @Named 注释的 Bean 扩展了这个控制器,没有任何抱怨,但是带有 @ManagedBean 注释的 Bean 得到了上述异常。 如何在我的 JSF 托管 Bean 中扩展这个 AbstractController 而不会出现不满意的依赖投诉?
public abstract class AbstractController<T> {
@Inject
private AbstractFacade<T> ejbFacade;
private Class<T> itemClass;
private T selected;
private Collection<T> items;
private boolean trueOrFalse;
private static int idOfSubmittedRecord;
private enum PersistAction {
CREATE,
DELETE,
UPDATE
}
public AbstractController() {
}
【问题讨论】:
标签: jakarta-ee jsf-2 cdi