problem avec rich:paint2D
Bonjour tout le monde, j'essaye d'utiliser rich:paint2d afin de générer une image 2d (un histogramme en réalité).
J'ai suivit les consignes de JBoss http://www.jboss.org/file-access/def...l/paint2D.html mais a chaque fois et après de nombreux testes il me retourne la même erreur qui n'est pas référencés sur google. Je précis que j'ai réussit une fois à le faire marcher correctement (par magie) et je suis incapable de retrouver cette formule magique. :(
voici tous les objets intervenant:
la jsp
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
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@taglib uri="http://java.sun.com/jsf/html" prefix="html"%>
<%@taglib uri="http://java.sun.com/jsf/core" prefix="core"%>
<%@taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@taglib uri="http://richfaces.org/rich" prefix="rich"%>
<%@taglib uri="http://sourceforge.net/projects/jsf-comp/acegijsf" prefix="acegijsf"%>
<html>
<body>
<core:view>
<html:form>
<core:loadBundle basename="com.langue.tableaudebord" var="tdb" />
<%@ include file="/pages/entete.jsp"%>
<%@ include file="/pages/parametrestilisateur.jsp"%>
<rich:dataGrid value="#{BeanTableauDeBord.listDepartement}" var="periodique" columns="3">
<rich:panel bodyClass="pbody">
<core:facet name="header">
<html:outputText value="#{tdb.departement} #{periodique.nom}" />
</core:facet>
<br/>
<rich:paint2D paint="#{BeanDessin.paint}" data="#{periodique.donnees}" format="png" cacheable="false"/>
<html:inputTextarea value="#{periodique.resumer}" readonly="false"/>
<br>
<html:commandButton value="#{tdb.modification}" action="#{BeanTableauDeBord.changerResumer}">
<core:setPropertyActionListener value="#{periodique}" target="#{BeanTableauDeBord.selectionInputText}"/>
</html:commandButton>
</rich:panel>
</rich:dataGrid>
<%@ include file="/pages/piedPage.jsp"%>
</html:form>
</core:view>
</body>
</html> |
la classe java de dessin (qui correspond au paintBean.java dans l'exemple)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
package com.fonction.dessin;
import java.awt.Graphics2D;
public class BeanDessin
{
public void paint(Graphics2D g2, Object obj)
{
DonneeDessin data = (DonneeDessin) obj;
g2.drawRect(0, 0, data.Width, data.Height);
}
} |
Je précise qu'il plante avant même d'accéder à cette classe et qu'elle est déclaré dans le face-config
la classe de données (qui est definie dans la classe périodique)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
package com.fonction.dessin;
import java.io.Serializable;
import com.modele.donnees.Periodique;
public class DonneeDessin implements Serializable
{
private static final long serialVersionUID = 1L;
Integer Width=100;
Integer Height=50;
private Periodique periodique;
public DonneeDessin(Periodique per)
{
this.periodique = per;
}
} |
Cette classe ne semble pas planter car ma jsp la lie parfaitement
et biensur la trace de la pile:
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
|
GRAVE: "Servlet.service()" pour la servlet Faces Servlet a généré une exception
java.lang.NullPointerException
at org.richfaces.renderkit.html.Paint2DResource.isCacheable(Paint2DResource.java:81)
at org.ajax4jsf.resource.InternetResourceService.serviceResource(InternetResourceService.java:164)
at org.ajax4jsf.resource.InternetResourceService.serviceResource(InternetResourceService.java:141)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:500)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:613) |
Si quelqu'un pouvait me sauver la vie. En attendant je continu a chercher, je vais bien la retrouver cette formule magique pour le faire marcher.:roll: