JBoss和CDI制作人

时间:2015-06-05 07:23:55

标签: java-ee jboss cdi

我在使用JBoss AS7 / JEE 6时遇到问题,同时使用生产器作为WildFly和JEE 7工作正常的记录器。

我创建了一个限定符:

@Qualifier
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.METHOD})
public @interface BpeLogger {
}

生产者类:

public class LoggerProducer{
  @Produces
  @BpeLogger
  public Logger produceLogger(InjectionPoint injectionPoint) {
    return LoggerFactory.getLogger(injectionPoint.getMember().getDeclaringClass().getName());
  }
}

现在我试图用另一个CDI Bean注入记录器:

  @Inject
  @BpeLogger
  private Logger logger;

部署失败,出现以下异常:

org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [Logger] with qualifiers [@BpeLogger] at injection point [[field] @Inject @BpeLogger private de.ulc.bpe.web.process.Domino.logger]

这里有什么问题?

1 个答案:

答案 0 :(得分:0)

确保META-INF文件夹中有beans.xml文件。

您也可以尝试直接将LoggerProducer类注释为CDI bean。例如。添加@Named注释,可能还有合适的范围。在你的情况下,@ Singleton可能会做得很好。

padding-top