@MarcosMiranda escreveu:
Boa noite a todos, estou com um problema aonde eu estou estudando java, e criei algumas classes, porém so tenho o retorno da exception "java.lang.NullPointerException", por favor ajudem-me.
Contact
package br.com.agenda.models;import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.Table; import org.hibernate.validator.constraints.NotBlank; import br.com.agenda.models.Phone; @Entity @Table(name="tblContacts") public class Contact { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name="idContacts") private Integer id; @NotBlank @Column(name="nameContacts") private String name; @NotBlank @Column(name="emailContacts") private String email; @OneToMany(mappedBy = "contact", targetEntity = Phone.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL) private List<Phone> phones; public List<Phone> getPhones() { return phones; } public void setPhones(List<Phone> phones) { this.phones = phones; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } }
Phone
package br.com.agenda.models;import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; import org.hibernate.validator.constraints.NotBlank; @Entity @Table(name = "tblPhones") public class Phone { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name="idPhones") private Integer id; @NotBlank @Column(name="dddPhones") private Integer ddd; @NotBlank @Column(name="numberPhones") private Integer number; @ManyToOne @JoinColumn(name="idContacts") private Contact contact; public Contact getContact() { return contact; } public void setContact(Contact contact) { this.contact = contact; } public Integer getDdd() { return ddd; } public void setDdd(Integer ddd) { this.ddd = ddd; } public Integer getNumber() { return number; } public void setNumber(Integer number) { this.number = number; } }
ContactController
package br.com.agenda.controllers;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; import br.com.agenda.interfaces.IContactService; @Controller @RequestMapping("/contact") public class ContactController { @Autowired private static IContactService contactService; @RequestMapping(method=RequestMethod.GET) public ModelAndView listContact() { ModelAndView modelAndView = new ModelAndView("contacts"); modelAndView.addObject("contacts", contactService.searchId(1)); return modelAndView; } }
ServiceContact
package br.com.agenda.services;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import br.com.agenda.daos.ContactDAO;
import br.com.agenda.interfaces.IContactService;
import br.com.agenda.models.Contact;@Service public class ContactService implements IContactService { @Autowired private ContactDAO contactDAO = new ContactDAO(); public void save(Contact contact) { contactDAO.save(contact); } public Contact searchId(Integer id) { return contactDAO.search(id); } public List<Contact> listAll() { return contactDAO.listAll(); } public List<Contact> listSpecific(String field, String value) { return null; } }
ContactDAO
package br.com.agenda.daos;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.springframework.stereotype.Repository;
import br.com.agenda.models.Contact;@Repository public class ContactDAO { @PersistenceContext private EntityManager manager; public void save(Contact contact) { try { if (contact.getId() != null) { manager.persist(contact); } else { manager.merge(contact); } } catch(RuntimeException e) { System.out.println(e.getMessage()); } catch(Exception e) { System.out.println(e.getMessage()); } } public Contact search(Integer id) { try { return manager.find(Contact.class, id); } catch(RuntimeException e) { System.out.print(e.getMessage()); return null; } catch(Exception e) { System.out.println(e.getMessage()); return null; } } public List<Contact> listAll() { return manager.createQuery("SELECT c FROM Contact c JOIN FETCH c.phones", Contact.class).getResultList(); } }
Lista de erros
type Exception reportmessage Request processing failed; nested exception is java.lang.NullPointerException description The server encountered an internal error that prevented it from fulfilling this request. exception org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) javax.servlet.http.HttpServlet.service(HttpServlet.java:622) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) root cause java.lang.NullPointerException br.com.agenda.controllers.ContactController.listContact(ContactController.java:21) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:498) org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:220) org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:134) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:116) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) javax.servlet.http.HttpServlet.service(HttpServlet.java:622) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) note The full stack trace of the root cause is available in the Apache Tomcat/8.5.11 logs.
Mensagens: 1
Participantes: 1