无法找到javax.inject.Current

时间:2014-12-10 16:53:25

标签: jsf netbeans cdi

我正在尝试使用带有玻璃鱼的netbeans来学习JSF。 一切都是最新的。从sdk到netbeans。我正在关注2009年出版的一本书中的一些例子。

在这些例子中,作者使用了@Current注释并导入了javax.inject.Current。

当我使用netbeans尝试代码时,netbeans会抛出错误。我添加了java EE 7库,但没有做任何事情。

在你的答案中1-解释为什么netbeans找不到班级和2-逐步提供将班级添加到我的项目的程序。

这是我正在使用的代码。

`package hello;

 import java.util.*;
 import javax.faces.bean.RequestScoped;
 import javax.inject.Named;
 import javax.inject.Inject.Current;

 @Named
 @RequestScoped
 public class QuoteRequest {

   private String symbol;
   @Current
   private StockService service;
   private Date quoteDate = new Date();

   public QuoteRequest() {

   }

   public String getSymbol() {
    return symbol;
  }

  public void setSymbol(String symbol) {
    this.symbol = symbol;
  }

 public double getStockValue(){
    return service.getStockValue(this);
 }

 public Date getQuoteDate() {
    return quoteDate;
}

 public void setQuoteDate(Date qouteDate) {
    this.quoteDate = qouteDate;
 }

} `

1 个答案:

答案 0 :(得分:0)

你需要做两件事

  1. 如本书所示,使用来自javax.inject包的@Inject注释而不是@Current注释。
  2. 确保WEB-INF文件夹中有一个空的beans.xml文件。此文件对于将bean视为CDI bean非常重要。