我有一个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被注入,但是部署时出现错误。