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