java.lang.NullPointerException при вызове из контроллера - PullRequest
0 голосов
/ 30 октября 2018

Моя программа Spring Boot компилируется без проблем, но всякий раз, когда я нажимаю на ссылку регистрации, она выдает ошибку NullPointerException. Я действительно в растерянности относительно того, что может быть причиной этого. Ниже приведена ошибка: -

java.lang.NullPointerException: null
    at com.concretepage.controller.UserInfoController.registration(UserInfoController.java:32) ~[classes/:na]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_171]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_171]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_171]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_171]

Класс UserinfoController указан ниже: -

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.concretepage.entity.ProjectLevel;
import com.concretepage.service.LevelService;
import com.concretepage.service.UserInfoService;

@Controller
@RequestMapping("app")
public class UserInfoController {
    @Autowired
    private UserInfoService userInfoService;
    private LevelService levelService;

    @GetMapping("login")
    public ModelAndView login() {
        ModelAndView mav = new ModelAndView();
        mav.setViewName("custom-login");
        return mav;
    }

    @GetMapping("registration")
    public ModelAndView registration() {
        ModelAndView mav = new ModelAndView();
        List<ProjectLevel> levels = levelService.getAllLevels();
        mav.addObject("Levels", levels);
        mav.setViewName("registration");
        return mav;
    }

    @GetMapping("secure/project-details")
    public ModelAndView getAllUserProjects() {
        ModelAndView mav = new ModelAndView();
        mav.addObject("userProjects", userInfoService.getAllUserProjects());
        mav.setViewName("projects");
        return mav;
    }

Ошибка в строке -

List<ProjectLevel> levels = levelService.getAllLevels();

Класс LevelServiceImpl выглядит следующим образом: -

package com.concretepage.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.concretepage.entity.ProjectLevel;
import com.concretepage.repositories.LevelRepository;

@Service
public class LevelServiceImpl implements LevelService {
    @Autowired
    private LevelRepository levelRepository;

    @Override
    public List<ProjectLevel> getAllLevels() {
        List<ProjectLevel> levelList = levelRepository.findAll();
        return levelList;
    }
}

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Вы должны использовать отдельный @Autowired для частного LevelService levelService;

0 голосов
/ 30 октября 2018

Просто измените этот кусок кода:

@Autowired
private UserInfoService userInfoService;
private LevelService levelService;

до

@Autowired
private UserInfoService userInfoService;
@Autowired
private LevelService levelService;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...