【问题标题】:@Inject @ThirteenNumber throw NullPointException@Inject @ThirteenNumber 抛出 NullPointErexception
【发布时间】:2017-09-09 06:41:21
【问题描述】:

我尝试使用@Injection,所以从这里的一个简单示例开始:

界面

public interface NumberGenerator {
    String generateNumber();
}

图书服务

public class BookServices {

    @Inject
    @ThirteenNumber
    private NumberGenerator generator;

    public Book createBook(String title){
        return new Book(title, generator.generateNumber());
    }
}

图书对象

public class Book {

    private String title;
    private String isbn;

    public Book() {
    }

    public Book(String title, String isbn) {
        this.title = title;
        this.isbn = isbn;
    }

    //getters and setters
}

CDI

@Named(value = "injectionTest") 
@ViewScoped 
public class InjectionTest implements Serializable {

    public void showResult() {
        BookServices bookService = new BookServices();
        Book book = bookService.createBook("Java book");
        System.out.println(book.toString());
    }

    //...
}

十三号实现

@ThirteenNumber
public class IsbnGenerator implements NumberGenerator{

    @Override
    public String generateNumber(){
        return "13-84333-" + Math.abs(new Random().nextInt());
    }
}

问题

当我尝试调用bookService.createBook("Java book") 时,它会抛出一个java.lang.NullPointerException,在generator.generateNumber() 我认为它没有调用正确的@Qualifier,试图解决这个问题,使用这个链接,Java EE 7 CDI - Injection doesn't work, sending NullPointerException 我添加了所有依赖关系,但问题还是一样?

我错过了什么吗?

注意我知道What is a NullPointerException, and how do I fix it?

谢谢。

【问题讨论】:

  • 问题是你的 InjectionTest 类中的new BookServices()new 运算符会破坏 CDI。就@InjectBookServices
  • 谢谢@Rouliboy,这真的很有帮助,在那之后我又遇到了一个错误CDI deployment failure:WELD-001408: Unsatisfied dependencies for type BookServices with qualifiers @Default 我像这样解决了它 1- 在 BookServices 中实现 Serializable 并将bean-discovery-mode 更改为bean-discovery-mode="all" 谢谢又来了

标签: jakarta-ee cdi inject


【解决方案1】:

问题是您的InjectionTest 类中的new BookServices()new 运算符会破坏 CDI。只是 @Inject BookServices 豆子。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-08
    • 2017-08-11
    • 2013-09-07
    • 2013-06-18
    • 2016-07-07
    • 2014-10-02
    • 2012-05-21
    • 2014-08-15
    相关资源
    最近更新 更多