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 : 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
 
<!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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : 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
 
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 : 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
 
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.