jsf - java.lang.NullPointerException at org.primefaces.component.chart.renderer.MeterGaugeRenderer.encodeData -
i trying manage work following example metergauge since xhtml code not complete can use make entire xhtml page, have taken missing tags primefaces official doc @ page 12. created javabean file chartview.java (taking code metergauge sample page) , tried running on glassfish server, failed, can see logs
metergauge2.xhtml
<!doctype html> <html xmlns="http://www.w3c.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:p="http://primefaces.org/ui" xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"> <h:head> </h:head> <h:body> <p:chart type="metergauge" model="#{chartbean.metergaugemodel1}" style="width:400px;height:250px" /> <p:chart type="metergauge" model="#{chartbean.metergaugemodel2}" style="width:400px;height:250px" /> </h:body> </html> chartview.java
package sources; import javax.annotation.postconstruct; import java.io.serializable; import java.util.arraylist; import java.util.list; import javax.faces.bean.managedbean; import org.primefaces.model.chart.metergaugechartmodel; @managedbean public class chartview implements serializable { private metergaugechartmodel metergaugemodel1; private metergaugechartmodel metergaugemodel2; @postconstruct public void init() { createmetergaugemodels(); } public metergaugechartmodel getmetergaugemodel1() { return metergaugemodel1; } public metergaugechartmodel getmetergaugemodel2() { return metergaugemodel2; } private metergaugechartmodel initmetergaugemodel() { list<number> intervals = new arraylist<number>(){{ add(20); add(50); add(120); add(220); }}; return new metergaugechartmodel(140, intervals); } private void createmetergaugemodels() { metergaugemodel1 = initmetergaugemodel(); metergaugemodel1.settitle("metergauge chart"); metergaugemodel1.setgaugelabel("km/h"); metergaugemodel2 = initmetergaugemodel(); metergaugemodel2.settitle("custom options"); metergaugemodel2.setseriescolors("66cc66,93b75f,e7e658,cc6666"); metergaugemodel2.setgaugelabel("km/h"); metergaugemodel2.setgaugelabelposition("bottom"); metergaugemodel2.setshowticklabels(false); metergaugemodel2.setlabelheightadjust(110); metergaugemodel2.setintervalouterradius(100); } } glassfish logs
2015-07-17t16:51:23.536+0200|grave: error rendering view[/metergauge2.xhtml] java.lang.nullpointerexception @ org.primefaces.component.chart.renderer.metergaugerenderer.encodedata(metergaugerenderer.java:33) @ org.primefaces.component.chart.renderer.baseplotrenderer.render(baseplotrenderer.java:29) @ org.primefaces.component.chart.chartrenderer.encodescript(chartrenderer.java:98) @ org.primefaces.component.chart.chartrenderer.encodeend(chartrenderer.java:67) @ javax.faces.component.uicomponentbase.encodeend(uicomponentbase.java:919) @ javax.faces.component.uicomponent.encodeall(uicomponent.java:1863) @ javax.faces.component.uicomponent.encodeall(uicomponent.java:1859) @ javax.faces.component.uicomponent.encodeall(uicomponent.java:1859) @ com.sun.faces.application.view.faceletviewhandlingstrategy.renderview(faceletviewhandlingstrategy.java:456) @ org.apache.myfaces.application.viewhandlerimpl.renderview(viewhandlerimpl.java:285) @ com.sun.faces.lifecycle.renderresponsephase.execute(renderresponsephase.java:120) @ com.sun.faces.lifecycle.phase.dophase(phase.java:101) @ com.sun.faces.lifecycle.lifecycleimpl.render(lifecycleimpl.java:219) @ javax.faces.webapp.facesservlet.service(facesservlet.java:647) @ org.apache.catalina.core.standardwrapper.service(standardwrapper.java:1682) @ org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:318) @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:160) @ org.apache.catalina.core.standardpipeline.doinvoke(standardpipeline.java:734) @ org.apache.catalina.core.standardpipeline.invoke(standardpipeline.java:673) @ com.sun.enterprise.web.webpipeline.invoke(webpipeline.java:99) @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:174) @ org.apache.catalina.connector.coyoteadapter.doservice(coyoteadapter.java:415) @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:282) @ com.sun.enterprise.v3.services.impl.containermapper$httphandlercallable.call(containermapper.java:459) @ com.sun.enterprise.v3.services.impl.containermapper.service(containermapper.java:167) @ org.glassfish.grizzly.http.server.httphandler.runservice(httphandler.java:201) @ org.glassfish.grizzly.http.server.httphandler.dohandle(httphandler.java:175) @ org.glassfish.grizzly.http.server.httpserverfilter.handleread(httpserverfilter.java:235) @ org.glassfish.grizzly.filterchain.executorresolver$9.execute(executorresolver.java:119) @ org.glassfish.grizzly.filterchain.defaultfilterchain.executefilter(defaultfilterchain.java:284) @ org.glassfish.grizzly.filterchain.defaultfilterchain.executechainpart(defaultfilterchain.java:201) @ org.glassfish.grizzly.filterchain.defaultfilterchain.execute(defaultfilterchain.java:133) @ org.glassfish.grizzly.filterchain.defaultfilterchain.process(defaultfilterchain.java:112) @ org.glassfish.grizzly.processorexecutor.execute(processorexecutor.java:77) @ org.glassfish.grizzly.nio.transport.tcpniotransport.fireioevent(tcpniotransport.java:561) @ org.glassfish.grizzly.strategies.abstractiostrategy.fireioevent(abstractiostrategy.java:112) @ org.glassfish.grizzly.strategies.workerthreadiostrategy.run0(workerthreadiostrategy.java:117) @ org.glassfish.grizzly.strategies.workerthreadiostrategy.access$100(workerthreadiostrategy.java:56) @ org.glassfish.grizzly.strategies.workerthreadiostrategy$workerthreadrunnable.run(workerthreadiostrategy.java:137) @ org.glassfish.grizzly.threadpool.abstractthreadpool$worker.dowork(abstractthreadpool.java:565) @ org.glassfish.grizzly.threadpool.abstractthreadpool$worker.run(abstractthreadpool.java:545) @ java.lang.thread.run(thread.java:745) 2015-07-17t16:51:23.601+0200|avvertenza: standardwrappervalve[faces servlet]: servlet.service() servlet faces servlet threw exception java.lang.nullpointerexception @ org.primefaces.component.chart.renderer.metergaugerenderer.encodedata(metergaugerenderer.java:33) @ org.primefaces.component.chart.renderer.baseplotrenderer.render(baseplotrenderer.java:29) @ org.primefaces.component.chart.chartrenderer.encodescript(chartrenderer.java:98) @ org.primefaces.component.chart.chartrenderer.encodeend(chartrenderer.java:67) @ javax.faces.component.uicomponentbase.encodeend(uicomponentbase.java:919) @ javax.faces.component.uicomponent.encodeall(uicomponent.java:1863) @ javax.faces.component.uicomponent.encodeall(uicomponent.java:1859) @ javax.faces.component.uicomponent.encodeall(uicomponent.java:1859) @ com.sun.faces.application.view.faceletviewhandlingstrategy.renderview(faceletviewhandlingstrategy.java:456) @ org.apache.myfaces.application.viewhandlerimpl.renderview(viewhandlerimpl.java:285) @ com.sun.faces.lifecycle.renderresponsephase.execute(renderresponsephase.java:120) @ com.sun.faces.lifecycle.phase.dophase(phase.java:101) @ com.sun.faces.lifecycle.lifecycleimpl.render(lifecycleimpl.java:219) @ javax.faces.webapp.facesservlet.service(facesservlet.java:647) @ org.apache.catalina.core.standardwrapper.service(standardwrapper.java:1682) @ org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:318) @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:160) @ org.apache.catalina.core.standardpipeline.doinvoke(standardpipeline.java:734) @ org.apache.catalina.core.standardpipeline.invoke(standardpipeline.java:673) @ com.sun.enterprise.web.webpipeline.invoke(webpipeline.java:99) @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:174) @ org.apache.catalina.connector.coyoteadapter.doservice(coyoteadapter.java:415) @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:282) @ com.sun.enterprise.v3.services.impl.containermapper$httphandlercallable.call(containermapper.java:459) @ com.sun.enterprise.v3.services.impl.containermapper.service(containermapper.java:167) @ org.glassfish.grizzly.http.server.httphandler.runservice(httphandler.java:201) @ org.glassfish.grizzly.http.server.httphandler.dohandle(httphandler.java:175) @ org.glassfish.grizzly.http.server.httpserverfilter.handleread(httpserverfilter.java:235) @ org.glassfish.grizzly.filterchain.executorresolver$9.execute(executorresolver.java:119) @ org.glassfish.grizzly.filterchain.defaultfilterchain.executefilter(defaultfilterchain.java:284) @ org.glassfish.grizzly.filterchain.defaultfilterchain.executechainpart(defaultfilterchain.java:201) @ org.glassfish.grizzly.filterchain.defaultfilterchain.execute(defaultfilterchain.java:133) @ org.glassfish.grizzly.filterchain.defaultfilterchain.process(defaultfilterchain.java:112) @ org.glassfish.grizzly.processorexecutor.execute(processorexecutor.java:77) @ org.glassfish.grizzly.nio.transport.tcpniotransport.fireioevent(tcpniotransport.java:561) @ org.glassfish.grizzly.strategies.abstractiostrategy.fireioevent(abstractiostrategy.java:112) @ org.glassfish.grizzly.strategies.workerthreadiostrategy.run0(workerthreadiostrategy.java:117) @ org.glassfish.grizzly.strategies.workerthreadiostrategy.access$100(workerthreadiostrategy.java:56) @ org.glassfish.grizzly.strategies.workerthreadiostrategy$workerthreadrunnable.run(workerthreadiostrategy.java:137) @ org.glassfish.grizzly.threadpool.abstractthreadpool$worker.dowork(abstractthreadpool.java:565) @ org.glassfish.grizzly.threadpool.abstractthreadpool$worker.run(abstractthreadpool.java:545) @ java.lang.thread.run(thread.java:745)
just check source code based on stack trace.
java.lang.nullpointerexception @ org.primefaces.component.chart.renderer.metergaugerenderer.encodedata(metergaugerenderer.java:33) metergaugerenderer#encodedata() line 33 below:
33 writer.write(",data:[[" + model.getvalue() + "]]"); the writer can't null @ point. so, logically, model null.
upon closer inspection of <p:chart model> attribute, appears made mistake in showcase in current form. closer @ managed bean names.
<p:chart ... model="#{chartbean.metergaugemodel1}" /> @managedbean public class chartview implements serializable {} indeed, don't match.
so, solution is: either use #{chartview.metergaugemodel1} in view, or rename backing bean class chartbean.
Comments
Post a Comment