Bonjour,
Sur un serveur Wildfly j'ai l'erreur JAVA suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 l’entité (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!