生产者不会用来生产Bean作为替代品

时间:2014-08-08 04:17:58

标签: java java-ee cdi

我有一个SecurityContext bean,用于在用户登录后保存信息。这在生产中运行时会被注入我的应用程序。现在,我编写了一个生产者,它使用一些模拟数据生成SecurityContext。我使用@Alternative注释注释了生产者以及SecurityBean,并且在开发时我将beans.xml中定义的生成器类作为替代。我通过部署获得了一个例外:

Unsatisfied dependencies for type SecurityContext with qualifiers @Default

这是我的SecurityContext:

@Named("securityContext")
@SessionScoped
@Alternative
public class SecurityContext implements Serializable {

    private static final long serialVersionUID = -4438358981780651509L;

    String name;

    public String getName() {return name}

    public void setName(String name) {this.name=name}
}

这是我的制片人:

@Named("securityContext")
@Alternative
public class MockSecurityContextProducer implements Serializable {

    private static final long serialVersionUID = -7291628004789622477L;

    @Produces
    @Dependent
    public SecurityContext getSecurityContext() {

        SecurityContext securityContext = new SecurityContext();
        securityContext.setName("Test user");
        return securityContext;

    }

我必须提到所有这些类都在一个带有beans.xml的common-lib jar文件中。我在另一个项目中使用这个jar作为依赖项,其中SecurityContext被注入,但是部署时出现错误。

0 个答案:

没有答案