在HomeController中我做了以下呼叫服務方法
@Controller
public class HomeController {
@Autowired
private EUserService userDao;
@RequestMapping(value = "/")
public String setupForm(Map<String, Object> map) {
User user=(User)SecurityContextHolder.getContext().getAuthentication().getPrincipal();
EUser currentUser = userDao.findUserByName(user.getUsername());
System.out.println(currentUser.getUserName());
}
}
它工作正常,並正確顯示我的輸出。現在,如果我做同樣的事情在非控制器類型類像下面
public class Utility {
@Autowired
private EUserService userDao;
public void getLoggedUser() {
User user = (User) SecurityContextHolder.getContext()
.getAuthentication().getPrincipal();
EUser currentUser = (EUser) userService.findUserByName(user
.getUsername());
System.out.println(currentUser.getUserName());
}
}
它給了我下面的NullPointerException
SEVERE: Servlet.service() for servlet [spring] in context with path [/Ebajar] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
java.lang.NullPointerException
如何解決這個問題?
拋出'NullPointerException'的線是什麼? –