我正在尝试将服务注入(inject)到我的 bean 中,但它始终为 null
。
我收到以下错误:WELD-001000 Error resolving property userBean against base null。
一些代码片段:
index.xhtml
<h:body>
Hello from Facelets
#{userBean.name}
</h:body>
userbean.java
package beans;
import Domain.User;
import java.io.Serializable;
import javax.enterprise.context.SessionScoped;
import javax.inject.Inject;
import javax.inject.Named;
import service.UserService;
@Named
@SessionScoped
public class UserBean implements Serializable{
@Inject UserService service;
private User user;
public UserBean(){
this.user = service.find_user("foo");
}
public String getName(){
return "bar";
}
}
UserService.java
package service;
import Domain.User;
import javax.ejb.Stateless;
import javax.inject.Named;
@Named
@Stateless
public class UserService {
public UserService(){}
public User find_user(String name){
return new User();
}
}
最佳答案
另一种选择是使用@PostConstruct 方法注解。
@SessionScoped
public class UserBean implements Serializable {
@Inject UserService service;
private User user;
public UserBean() {
}
@PostConstruct
void init(){
this.user = service.findUser("kaas");
}
}
阅读docs
关于java - "@inject"-ed 属性保持为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5661022/