Bonjours,
cela fait bien longtemps que je ne suis pas passé sur ce cher forum, bref...
Je débute en j2ee, je cherche à récupérer des données depuis une page jsp en passant par un bean. Mais voila j'ai une erreur que je ne comprend pas : j'ai une erreur de pointeur null sur l'Entity Manager qui ce trouve dans mon Bean.
Voici le code en question :
page worldviewer.jsp :<%@page contentType="text/html" pageEncoding="UTF-8" %>
<%@page import="lux.controllers.WorldController" %>
<%@page import="lux.facade.WorldFacade" %>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>WorldViewer</title>
<link rel="stylesheet" type="text/css" href="stylesheet.jsp">
</head>
<body>
<jsp:useBean id="worldB" scope="session" class="lux.facade.WorldFacade"/>
<%= worldB.toString() %>
<%= worldB.getWorldFromXYZ(1, 1, 0).toString() %>
</body>
</html>
le code du bean : worldFacade.java :@Stateless
public class WorldFacade implements WorldFacadeLocal {
@PersistenceContext
private EntityManager em;
48 : public World getWorldFromXYZ(int x, int y, int z) {
49 : System.out.println("EM : "+em.toString());
50 : Query query = em.createNamedQuery("World.findFromXYZ");
51 : query.setParameter("x", x);
query.setParameter("y", y);
query.setParameter("z", z);
try {
return (World) query.getSingleResult();
} catch(NoResultException e) {
return new World(-1);
} catch(NonUniqueResultException e) {
return new World(-1);
}
}
}
La pile de l'erreur :Caused by: java.lang.NullPointerException
at lux.facade.WorldFacade.getWorldFromXYZ(WorldFacade.java:49)
at org.apache.jsp.worldviewer_jsp._jspService(worldviewer_jsp.java from :109)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:109)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:389)
La ligne 49 étant la ligne où j'ai testé de faire un toString() du em car je ne savais pas d'où venait l'erreur .
49 : System.out.println("EM : "+em.toString());
Je ne comprend pas pourquoi cela ne fonctionne pas,
j'ai une servlet dans la quel j'utilise ce bean et tous fonctionne très bien.
Mais dans ce cas, en passant par une JSP je suis bloqué.
Pouvez-vous m'indiquez mon erreur ?
Peut-être cela n'est pas possible ?
Merci d'avance à ceux qui auront pris le temps de me lire et de m'aider