Bonjour tout le monde,
J'ai un comportement étrange lors de l'appel de la methode createBufferedImage (class JFreeChart).
Sur mon site web fait en java 5 + struts, avec WebLogic, j'ai une erreur pdt l'execution du createBufferedImage.
Le hic, c'est que cette erreur n'apparait pas au debut. J'ai l'impression qu'elle arrive après un certain temps...
Ce qui est etrange aussi, c'est que mon catch n'intercepte aucune exception.
Simplement l'image généré fait 0 octet et est illisbile.

Est-ce que qqn a une idée?
Est-ce un pb de mémoire ? de cache ?

Voici le code utilisé pour générer l'image :
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
 
// Creation d'un nouveau graph 
CategoryPlot plot = new CategoryPlot();
 
// Ajout du graph en forme d'histogramme 
plot.setDataset(datasetTravail);
plot.setRangeAxis(new NumberAxis("xxx"));
 
// Apparence en degrade violet + valeur affiche au centre dans la barre  
BarRenderer barrenderer = new BarRenderer();
barrenderer.setSeriesPaint(0, new GradientPaint(0.0F, 0.0F, new Color(239, 239, 250), 0.0F, 0.0F, new Color(31, 31, 99)));
barrenderer.setBaseItemLabelsVisible(true);
barrenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
barrenderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER));
plot.setRenderer(barrenderer);
 
// Ajout du graph en forme de points pour les RA 
plot.setRangeAxis(1, new NumberAxis("yyy"));
plot.setDataset(1, datasetRA);
 
// Pour le rendu des points, on veut afficher la valeur au dessus des points  
LineAndShapeRenderer lineandshaperenderer = new LineAndShapeRenderer();
lineandshaperenderer.setBaseItemLabelsVisible(true);
lineandshaperenderer.setBaseItemLabelPaint(Color.red);
lineandshaperenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
lineandshaperenderer.setSeriesPaint(0, Color.red);
lineandshaperenderer.setLinesVisible(false);
plot.setRenderer(1, lineandshaperenderer);
plot.mapDatasetToRangeAxis(1, 1);
 
// Titre des ordonnees 
plot.setDomainAxis(new CategoryAxis("Titre"));
 
// On definit que les points sont affiches sur l'histogramme (et pas derriere...) 
plot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);
 
// Affichage des points et des barres a la verticale 
plot.setOrientation(PlotOrientation.VERTICAL);
 
// Affichage de la grille verticale 
plot.setRangeGridlinesVisible(false);
 
// Affichage de la grille horizontale 
plot.setDomainGridlinesVisible(false);
 
// Creaion du graphique avec les points 
JFreeChart chart = new JFreeChart(titreGraphique, JFreeChart.DEFAULT_TITLE_FONT, plot, false);
 
// Fond de l'image => blanc 
chart.setBackgroundPaint(Color.white);
 
// Ajout de la legende 
chart.addLegend(new LegendTitle(plot));
 
// Enregistrer l'image 
p_request.getSession().setAttribute(Constantes.IMG_HISTO,  chart.createBufferedImage(800, 400));