java.lang.NullPointerException - Wildly
Bonjour,
Sur un serveur Wildfly j'ai l'erreur JAVA suivante :
Code:
1 2
| 21:24:38,040 ERROR [io.undertow.request] (default task-1) UT005023: Exception handling request to /ProjetContactWeb/AddContactExecuteServlet: java.lang.NullPointerException
at deployment.ProjetContactEAR.ear.ProjetContactWeb.war//controleur.AddContactExecuteServlet.doPost(AddContactExecuteServlet.java:36) |
Le fichier concerné "AddContactExecuteServlet" :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| package controleur;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import ejbAgenda.Contact;
import ejbAgenda.ContactManagerRemote;
/**
* Servlet implementation class AddContactExecuteServlet
*/
@WebServlet("/AddContactExecuteServlet")
public class AddContactExecuteServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Contact contact = new Contact();
contact.setPrenom(request.getParameter("contact.prenom"));
contact.setNom(request.getParameter("contact.nom"));
contact.setAdresse(request.getParameter("contact.adresse"));
contact.setCodePostal(Integer.parseInt(request.getParameter("contact.codePostal")));
contact.setVille(request.getParameter("contact.ville"));
contact.setMobile(request.getParameter("contact.mobile"));
contact.setTelephone(request.getParameter("contact.telephone"));
ContactManagerRemote contactManagerRemote = EjbLocator.getLocator().getContactManager();
Contact newContact = contactManagerRemote.ajouterContact(contact);
RequestDispatcher rd = null;
if(newContact.getId() > 0) {
rd = request.getRequestDispatcher("/WEB-INF/jsps/contactAdded.jsp");
}
else {
rd = request.getRequestDispatcher("/WEB-INF/jsps/contactNotAdded.jsp");
}
rd.forward(request, response);
}
} |
ContactManager :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| package ejbAgenda;
import java.util.Collection;
import java.util.Hashtable;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
@Stateless
@LocalBean
public class ContactManager implements ContactManagerRemote {
@PersistenceContext
EntityManager em;
public Contact ajouterContact(Contact contact) {
em.persist(contact);
return contact;
}
public Collection<Contact> listerContact() {
// Vous pouvez aussi utiliser une named query définie dans lentité (cf TD5)
return em.createQuery("SELECT c FROM Contact c").getResultList();
}
private static ContactManagerRemote lookupRemoteEJB() throws NamingException {
final Hashtable jndiProperties = new Hashtable();
jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
final Context context = new InitialContext(jndiProperties);
final String appName = "ProjetContactEAR";
final String moduleName = "ProjetContactEJB";
final String distinctName = "";
final String beanName = ContactManager.class.getSimpleName();
final String viewClassName = ContactManagerRemote.class.getName();
System.out.println("Looking EJB via JNDI ");
System.out.println("ejb:"+appName+"/"+moduleName + "/" + distinctName + "/" + beanName + "!" + viewClassName);
String jndi="ejb:" + appName + "/" + moduleName + "/" + distinctName + "/" + beanName + "!" + viewClassName;
return (ContactManagerRemote) context.lookup(jndi);
}
} |
Si quelqu'un a une idée de ce qui cloche... merci!