当我不断收到NullPointerException时,我正在尝试使用springmvc开发Web应用程序 Utilisateur.java:
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映射期间出错 java.lang.NullPointerException在 org.apache.catalina.mapper.Mapper.internalMapWrapper(Mapper.java:842) 在org.apache.catalina.mapper.Mapper.map(Mapper.java:712)处 org.apache.catalina.core.ApplicationContext.getRequestDispatcher(ApplicationContext.java:499) 在 org.apache.catalina.core.ApplicationContextFacade.getRequestDispatcher(ApplicationContextFacade.java:221) 在 org.apache.catalina.connector.Request.getRequestDispatcher(Request.java:1338) 在 org.apache.catalina.connector.RequestFacade.getRequestDispatcher(RequestFacade.java:613) 在 javax.servlet.ServletRequestWrapper.getRequestDispatcher(ServletRequestWrapper.java:291) 在 org.springframework.web.servlet.view.InternalResourceView.getRequestDispatcher(InternalResourceView.java:281) 在 org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:189) 在 org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:267) 在 org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1221) 在 org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1005) 在 org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:952) 在 org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870) 在 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961) 在 org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852) 在javax.servlet.http.HttpServlet.service(HttpServlet.java:622)处 org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) 在javax.servlet.http.HttpServlet.service(HttpServlet.java:729)在 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.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217) 在 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.ErrorReportValve.invoke(ErrorReportValve.java:79) 在 org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518) 在 org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091) 在 org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:673) 在 org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun(NioEndpoint.java:1500) 在 org.apache.tomcat.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)