Jakarta ee @注入@ThirtenNumber抛出NullPointException

Jakarta ee @注入@ThirtenNumber抛出NullPointException,jakarta-ee,cdi,inject,Jakarta Ee,Cdi,Inject,我尝试使用@Injection,因此从这里的一个简单示例开始: 接口 图书服务 图书 CDI 第十三号实现 问题 当我试图调用bookService.createBookJava book时,它抛出了一个java.lang.NullPointerException,在generator.generateNumber中,我认为它没有调用正确的@Qualifier,试图解决这个问题,使用这个链接,我添加了所有依赖项,但问题仍然是一样的 我错过什么了吗 我知道的便条 谢谢。问题在于InjectionT

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

接口

图书服务

图书

CDI

第十三号实现

问题

当我试图调用bookService.createBookJava book时,它抛出了一个java.lang.NullPointerException,在generator.generateNumber中,我认为它没有调用正确的@Qualifier,试图解决这个问题,使用这个链接,我添加了所有依赖项,但问题仍然是一样的

我错过什么了吗

我知道的便条


谢谢。

问题在于InjectionTest类中的新BookService。新的操作员破坏了CDI。只需@injectthebookservicesbean。

问题在于InjectionTest类中的新BookServices。新的操作员破坏了CDI。只需@injectthebookservices谢谢@Rouliboy这真的很有帮助,在CDI部署失败后,我又遇到了一个错误:WELD-001408:使用限定符@Default的BookServices类型的未满足依赖项我这样解决了1-在BookServices中实现可序列化,并将bean发现模式更改为bean发现模式=再次非常感谢
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
}
@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());
    }
}