首页 > 解决方案 > 映射时出错 java.lang.NullPointerException

问题描述

当我不断收到 NullPointerException Utilisateur.java 时,我正在尝试使用 springmvc 开发 Web 应用程序:

import java.util.HashSet;
import java.util.Set;
import org.springframework.stereotype.Component;

/**
 *
 * @author admin
 */
//@Component
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * Utilisateur generated by hbm2java
 */
@Entity
@Table(name = "utilisateur")
public class Utilisateur  implements java.io.Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
     private Integer idUser;
     private String nom;
     private String prenom;
     private String profession;
     private String photo;
     @OneToMany(cascade=CascadeType.ALL)
    @JoinColumn(name="idUser")
    private Set<Post> posts;

    public Utilisateur() {
    }

    public Utilisateur(String nom, String prenom, String profession, String photo, Set posts) {
       this.nom = nom;
       this.prenom = prenom;
       this.profession = profession;
       this.photo = photo;
       this.posts = posts;
    }

    public Integer getIdUser() {
        return this.idUser;
    }

    public void setIdUser(Integer idUser) {
        this.idUser = idUser;
    }
    public String getNom() {
        return this.nom;
    }

    public void setNom(String nom) {
        this.nom = nom;
    }
    public String getPrenom() {
        return this.prenom;
    }

    public void setPrenom(String prenom) {
        this.prenom = prenom;
    }
    public String getProfession() {
        return this.profession;
    }

    public void setProfession(String profession) {
        this.profession = profession;
    }
    public String getPhoto() {
        return this.photo;
    }

    public void setPhoto(String photo) {
        this.photo = photo;
    }
    public Set getPosts() {
        return this.posts;
    }

    public void setPosts(Set posts) {
        this.posts = posts;
    }




}

我的 userController.java:

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.portlet.ModelAndView;

@Controller
public class UserController {
    @RequestMapping(value="/listUtilisateur/",method=RequestMethod.GET)
    public ModelAndView showUsers(){
        ModelAndView model=new ModelAndView();
        model.addObject("msg","hello");
        System.out.println("nisrine khan");
        return model;
    }
     @RequestMapping(value="/CreateUser",method=RequestMethod.GET)
    public ModelAndView FormUser(){
        ModelAndView model=new ModelAndView("CreateUser");
        model.addObject("msg","msg");
        System.out.println("nisrine khan");
        return model;
    }

    @RequestMapping(value="/editUser",method=RequestMethod.GET)
    public ModelAndView EditUser(){
        ModelAndView model=new ModelAndView("CreateUser1");
        model.addObject("msg","msg");
        System.out.println("nisrine khan");
        return model;
    }


}

我的formusercontroller.java:

FormUserController.java:
import com.ensat.service.UtilisateurServiceImp;
import com.ensat.model.Utilisateur;
import java.util.HashMap;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class FormUserController {

    private UtilisateurServiceImp userService;

    @Autowired(required = true)
    public FormUserController(UtilisateurServiceImp USI) {
        this.userService = USI;
    }

    private Map<Integer, Utilisateur> UtilisateurMap = new HashMap<>();

    @RequestMapping(value = "/addUser", method = RequestMethod.POST)
    public String submit(
            @ModelAttribute("Utilisateur") Utilisateur utilisateur,
            BindingResult result, ModelMap model) {
        if (result.hasErrors()) {
            return "error";
        }
        model.addAttribute("nom", utilisateur.getNom());
        model.addAttribute("id", utilisateur.getIdUser());
        model.addAttribute("prenom", utilisateur.getPrenom());
        model.addAttribute("profession", utilisateur.getProfession());
        model.addAttribute("photo", utilisateur.getPhoto());
        model.addAttribute("msg", "Welcome to Island!");

        model.addAttribute("utilisateur", utilisateur);
        UtilisateurMap.put(utilisateur.getIdUser(), utilisateur);
        if (utilisateur.getIdUser() == 0) {
            //new person, add it
           this.userService.addService(utilisateur);

        } else {
            //existing person, call update
            this.userService.updateService(utilisateur);

        }

        return "listUser";
    }


    @RequestMapping(value = "/edit/{id}", method = RequestMethod.POST)
    public String editUtilisateur(
            @ModelAttribute("Utilisateur") Utilisateur utilisateur,
            BindingResult result, ModelMap model) {
        if (result.hasErrors()) {
            return "error";
        }
        model.addAttribute("nom", utilisateur.getNom());
        model.addAttribute("id", utilisateur.getIdUser());
        model.addAttribute("prenom", utilisateur.getPrenom());
        model.addAttribute("profession", utilisateur.getProfession());
        model.addAttribute("photo", utilisateur.getPhoto());

        UtilisateurMap.put(utilisateur.getIdUser(), utilisateur);
        this.userService.updateService(utilisateur);
        return "listUser";
    }

    @RequestMapping("/remove/{id}")
    public String removeUtilisateur(@PathVariable("idUser") int id) {
    this.userService.removeService(id);

        return "listUser";
    }
}

我的utilisateurDAO.java:

import com.ensat.model.Utilisateur;
import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;


@Repository
public class UtilisateurDao implements IntDao<Utilisateur> {

    private static final Logger logger = LoggerFactory.getLogger(UtilisateurDao.class);
    @Autowired
    @Qualifier("sessionFactory")
    private SessionFactory sessionFactory;

    public void setSessionFactory(SessionFactory sf) {
        this.sessionFactory = sf;
    }

    @Override
    public boolean saveUser(Utilisateur p) {
        Session session = this.sessionFactory.getCurrentSession();
        session.persist(p);
        logger.info("Utilisateur enregistré avec succés , Utilisateur Details=" + p);
        return true;
    }

    @Override
    public boolean UpdateUser(Utilisateur p) {
        Session session = this.sessionFactory.getCurrentSession();
        session.update(p);
        logger.info("Utilisateur mis à jour avec succés , Utilisateur Details=" + p);
        return true;
    }

    @Override
    public void deleteUser(Integer userId) {
        Session session = this.sessionFactory.getCurrentSession();
        Utilisateur p = (Utilisateur) session.load(Utilisateur.class, userId);
        if (null != p) {
            session.delete(p);
        }
        logger.info("Utilisateur supprimée avec succés , Utilisateur details=" + p);
    }

    @SuppressWarnings("unchecked")
    @Override
    public List<Utilisateur> getAllelements() {
        Session session = this.sessionFactory.getCurrentSession();
        List<Utilisateur> UtilisateursList = session.createQuery("from Utilisateur").list();
        for (Utilisateur p : UtilisateursList) {
            logger.info("Utilisateur List::" + p);
        }
        return UtilisateursList;
    }
    @Override
    public Utilisateur listUserById(Integer userId) {
        Session session = this.sessionFactory.getCurrentSession();
        Utilisateur p = (Utilisateur) session.load(Utilisateur.class, userId);
        logger.info("Utilisateur loaded successfully, Utilisateur details=" + p);
        return p;
    }

}

错误是:

org.apache.catalina.core.ApplicationContext.log 在 org.apache.catalina.mapper.Mapper.map 的 org.apache.catalina.mapper.Mapper.internalMapWrapper(Mapper.java:842) 映射 java.lang.NullPointerException 时出错(Mapper.java:712) 在 org.apache.catalina.core.ApplicationContextFacade.getRequestDispatcher(ApplicationContextFacade.java:221) 在 org.apache.catalina.core.ApplicationContext.getRequestDispatcher(ApplicationContext.java:499) 在 org.apache。 catalina.connector.Request.getRequestDispatcher(Request.java:1338) at org.apache.catalina.connector.RequestFacade.getRequestDispatcher(RequestFacade.java:613) at javax.servlet.ServletRequestWrapper.getRequestDispatcher(ServletRequestWrapper.java:291) at org .springframework.web.servlet.view.InternalResourceView.getRequestDispatcher(InternalResourceView.java:281) 在 org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:267) 在 org.springframework.web 的 org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:189) .servlet.DispatcherServlet.render(DispatcherServlet.java:1221) at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1005) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:952 ) 在 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961) 在 org.springframework.web.servlet.FrameworkServlet 的 org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)。 doGet(FrameworkServlet.java:852) 在 javax.servlet.http.HttpServlet。service(HttpServlet.java:622) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina .core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java :52) 在 org.netbeans.modules.web 的 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 的 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)。 monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) 在 org.apache.catalina.core.ApplicationFilterChain。internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217) at org.apache .catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) 在 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java :142) 在 org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) 在 org.apache.catalina.core 的 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)。 org.apache.catalina.connector.CoyoteAdapter 上的 StandardEngineValve.invoke(StandardEngineValve.java:88)。org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673) 上 org.apache.coyote.AbstractProtocol 的服务(CoyoteAdapter.java:518) .tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) at java.util.concurrent.ThreadPoolExecutor .runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61 ) 在 java.lang.Thread.run(Thread.java:748)1091) 在 org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) 在 org.apache.tomcat 的 org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673) .util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java :624) 在 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 在 java.lang.Thread.run(Thread.java:748)1091) 在 org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) 在 org.apache.tomcat 的 org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673) .util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java :624) 在 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 在 java.lang.Thread.run(Thread.java:748)NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org .apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 在 java.lang.Thread.run(Thread.java:748)NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org .apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 在 java.lang.Thread.run(Thread.java:748)

标签: javaspringspring-mvcnullpointerexception

解决方案


推荐阅读