我正在构建一个基于Spring的WebApp,包括一个RESTful方法调用。 我使用RESTeasy和jackson返回当前登录用户的用户名 (此信息存储在名为“UserBean”的会话Bean中)
的UserBean:
@Component("userBean")
@Scope("session")
public class UserBean implements Serializable {
@Autowired
private InitApp app;
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
OverviewBean是包含rest方法的bean(包括jackson转换为json):
@Component("overviewBean")
@Scope("view")
@Path("/repairs")
public class OverviewBean {
@Autowired
private InitApp app;
@Autowired
private UserBean userBean;
private List<Repair> openRepairsClient;
private List<Repair> closedRepairsClient;
@PostConstruct
public void fillRepairs() {
try {
String username = userBean.getUsername();
openRepairsClient = app.repairService.findOpenRepairsByClient((Client) app.userService.getUser(userBean.getUsername()));
closedRepairsClient = app.repairService.findClosedRepairsByClient((Client) app.userService.getUser(userBean.getUsername()));
} catch (UserServiceException ex) {
Logger.getLogger(OverviewBean.class.getName()).log(Level.SEVERE, null, ex);
}
}
//Getters and setters openRepairsClient/closedRepairsClient
@GET
@Path("/getrepairs")
@Produces("application/json")
public String getOpenRepairsInJson() {
String username = userBean.getUsername();
return "test";
}
}
fillRepairs()能够使用userBean而不会出现任何错误。例如,“String username = userBean.getUsername();”在try catch中正确返回用户名。
我的问题是,当调用getOpenRepairsInJson时,它会抛出nullPointerException on“String username = userBean.getUsername();”。似乎我的userBean没有“链接” 在方法调用的那一刻。我做错了什么?
提前致谢!