Spring会话bean和RESTEasy + Jackson nullPointerException

时间:2013-12-25 01:34:04

标签: java spring nullpointerexception jackson resteasy

我正在构建一个基于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没有“链接” 在方法调用的那一刻。我做错了什么?

提前致谢!

0 个答案:

没有答案