我有一个jar,生成Logger:
@ApplicationScoped
public class Resources {
@Produces
public Logger produceLogger(InjectionPoint injectionPoint) {
return LoggerFactory.getLogger(injectionPoint.getMember().getDeclaringClass());
}
}
jar在第二个jar中通过maven引用为依赖。在第二个我有@Inject
记录器的类。对于某些类,注入似乎很好,但对于其他人,eclipse显示警告:
没有豆有资格注射到注射点[JSR-346§5.2.2]
警告显示的类的示例:
@Named("errorHome")
@SessionScoped
public class ErrorHome implements Serializable {
private static final long serialVersionUID = 1L;
@Inject
Logger log;
...
}
但不在
public abstract class ListAbstraction<T> extends ListController<T> {
@Inject
Logger log;
...
}
两个罐子中都有beans.xml
。
为什么我会接受注射警示?
更新
警告仅显示在带有CDI注释的类中。可能是不同范围的问题?
(我已删除第二个示例,其中显示警告,因为我复制了错误的代码。在该类中没有警告。)