Hallo,
ich versuche gerade eine Webanwendung mit JSF2 aufzusetzen. Habe dazu eine Entity-Klasse "Plant", eine zugehörige
SessionFacade "PlantFacade" und eine JSFManaged Bean "PlantView", wobei ich
Getting Started with Java EE 6 Applications als Vorlage genommen habe. Nun möchte ich ExtJS in
meine Anwendung einbauen um zb. bessere Darstellungsmöglichkeiten wie Charts zu haben. Mein JavaScript macht
hierbei einen Ajax-Call an eine JSP Datei, die nun aus der Datenbank Informationen holen soll und via JSON
zurücksendet.
Mein Problem ist derzeit das Erhalten von Informationen aus der Datenbank. Die JSP-Datei sieht so aus:
PlantView.getAllMyPlants() sieht folgendermaßen aus
und PlantFacade.findAll() so:
Wenn ich in einer JSF-Datei diese Daten holen möchte ist dies kein Problem über #{PlantView.allMyPlants} aber so
bzgl. der JSP Datei erhalten ich folgende Fehlermeldung:
WARNUNG: StandardWrapperValve[jsp]: PWC1406: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at my.presentation.PlantView.getAllMyPlants(PlantView.java:47)
at org.apache.jsp.switch_jsp._jspService(switch_jsp.java from :61)
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:406)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:483)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:373)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:332)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:233)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:619)
Kann mir jemand sagen wo das Problem liegen könnte? Danke im Voraus
ich versuche gerade eine Webanwendung mit JSF2 aufzusetzen. Habe dazu eine Entity-Klasse "Plant", eine zugehörige
SessionFacade "PlantFacade" und eine JSFManaged Bean "PlantView", wobei ich
Getting Started with Java EE 6 Applications als Vorlage genommen habe. Nun möchte ich ExtJS in
meine Anwendung einbauen um zb. bessere Darstellungsmöglichkeiten wie Charts zu haben. Mein JavaScript macht
hierbei einen Ajax-Call an eine JSP Datei, die nun aus der Datenbank Informationen holen soll und via JSON
zurücksendet.
Mein Problem ist derzeit das Erhalten von Informationen aus der Datenbank. Die JSP-Datei sieht so aus:
Code:
<%@page contentType="text/html" pageEncoding="UTF-8"
import="my.presentation.PlantView, java.util.List, entities.Plant, java.util.HashMap, org.json.* "%>
<%
PlantView pv = new PlantView();
String func = request.getParameter("func");
if(func.compareTo("createPlant")==0){
pv.getPlant().setName(request.getParameter("name"));
pv.createPlant();
}
if(func.compareTo("getColorsChart")==0){
List<Plant> list = pv.getAllMyPlants();
HashMap<String,Integer> map = new HashMap<String,Integer>();
for(Plant p : list){
Integer i = map.get(p.getColor());
if(i!=null)
i++;
map.put(p.getColor(),i);
}
out.write(new JSONObject(map).toString());
}
%>
PlantView.getAllMyPlants() sieht folgendermaßen aus
Java:
public List<Plant> getAllMyPlants() {
return plantFacade.findAll();
}
und PlantFacade.findAll() so:
Java:
public List<Plant> findAll() {
CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
cq.select(cq.from(Plant.class));
return em.createQuery(cq).getResultList();
}
Wenn ich in einer JSF-Datei diese Daten holen möchte ist dies kein Problem über #{PlantView.allMyPlants} aber so
bzgl. der JSP Datei erhalten ich folgende Fehlermeldung:
WARNUNG: StandardWrapperValve[jsp]: PWC1406: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at my.presentation.PlantView.getAllMyPlants(PlantView.java:47)
at org.apache.jsp.switch_jsp._jspService(switch_jsp.java from :61)
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:406)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:483)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:373)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:332)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:233)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:619)
Kann mir jemand sagen wo das Problem liegen könnte? Danke im Voraus