[Cewolf] [servlet] pb de pointeur null ?

Pwillou Messages postés 17 Date d'inscription samedi 11 octobre 2003 Statut Membre Dernière intervention 3 mai 2005 - 2 mai 2005 à 15:58
Pwillou Messages postés 17 Date d'inscription samedi 11 octobre 2003 Statut Membre Dernière intervention 3 mai 2005 - 2 mai 2005 à 16:08
Bonjour,

Je souhaite réaliser des graphiques et les afficher sur des pages jsp.
Je parviens à obtenir des images jpeg a partir de jfreechart.
J'en suis venu a utiliser Cewolf.

J'ai repris le tutorial du site mais j'obtiens une erreur de pointeur null.

package com.scot.wipp;

import java.io.Serializable;
import java.util.Date;
import java.util.Map;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;

import de.laures.cewolf.DatasetProduceException;
import de.laures.cewolf.DatasetProducer;
import de.laures.cewolf.links.CategoryItemLinkGenerator;
import de.laures.cewolf.tooltips.CategoryToolTipGenerator;


public class GraphProducer implements DatasetProducer, /* CategoryToolTipGenerator, CategoryItemLinkGenerator, */ Serializable {
private static final Log log = LogFactory.getLog(GraphProducer.class);

// These values would normally not be hard coded but produced by
// some kind of data source like a database or a file
private final String[] categories = {"mon", "tue", "wen", "thu", "fri", "sat", "sun"};
private final String[] seriesNames = {"cewolfset.jsp", "tutorial.jsp", "testpage.jsp", "performancetest.jsp"};


/**
* Produces a Dataset that provides data for a graphic chart.
*
* @param params Parameters passed in request
* @return Dataset used to render chart
*/
public Object produceDataset(Map params) {


log.debug("producing data.");
DefaultCategoryDataset dataset = new DefaultCategoryDataset(){
/**
* @see java.lang.Object#finalize()
*/
protected void finalize() throws Throwable {
super.finalize();
log.debug(this +" finalized.");
}
};
for (int series = 0; series < seriesNames.length; series ++) {
int lastY = (int)(Math.random() * 1000 + 1000);
for (int i = 0; i < categories.length; i++) {
final int y = lastY + (int)(Math.random() * 200 - 100);
lastY = y;
dataset.addValue(y, seriesNames[series], categories[i]);
}
}
return dataset;

}

/**
* Gets the producerId attribute of the SeriesData object
*
* @return The producerId value
*/
public String getProducerId() {
return "GraphProducer";
}

/**
* Checks whether curent chart image has expired.
*
* @param params Parameters passed in Request
* @param since Date used for determining expiration
* @return Boolean indicating if Dataset has expired
*/
public boolean hasExpired(Map params, java.util.Date since) {
return false;
}

}

Dans la jsp je fais ainsi:



<jsp:useBean id="pageViews" class="com.scot.wipp.GraphProducer"/>

<cewolf:chart id="line" title="Page View Statistics" type="line" xaxislabel="Page" yaxislabel="Views">

<cewolf:data>

<cewolf:producer id="pageViews"/>

</cewolf:data>

</cewolf:chart>

<cewolf:img chartid="line" renderer="cewolf" width="800" height="800"/>






Au lieu de m'afficher l'image, il m'affiche ceci:

http://pwill.freezee.org/erreur.jpg




Pouvez-vous m'aider à régler ce problème ? depuis ce matin je trouve pas


J'ai aussi une question, comment puis-je utiliser cewolf à partir d'une classe qui extends
Action (cette classe est la réponse à une classe formulaire). Est-ce que je peux instancier des objets GraphProducer
dans la fonction execute de ma classe Action ?


Merci d'avance à ceux qui pourront m'éclairer !

1 réponse

Pwillou Messages postés 17 Date d'inscription samedi 11 octobre 2003 Statut Membre Dernière intervention 3 mai 2005
2 mai 2005 à 16:08
Désolé c'est illisible, je trouve pas le moyen d'éditer mon message précédent.


Bonjour,

Je souhaite réaliser des graphiques et les afficher sur des pages jsp.
Je parviens à obtenir des images jpeg a partir de jfreechart.
J'en suis venu a utiliser Cewolf.

J'ai repris le tutorial du site mais j'obtiens une erreur de pointeur null.

package com.scot.wipp;


import java.io.Serializable;
import java.util.Date;
import java.util.Map;


import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;


import de.laures.cewolf.DatasetProduceException;
import de.laures.cewolf.DatasetProducer;
import de.laures.cewolf.links.CategoryItemLinkGenerator;
import de.laures.cewolf.tooltips.CategoryToolTipGenerator;


public class GraphProducer implements DatasetProducer, /* CategoryToolTipGenerator, CategoryItemLinkGenerator, */ Serializable {
private static final Log log = LogFactory.getLog(GraphProducer.class);


// These values would normally not be hard coded but produced by
// some kind of data source like a database or a file
private final String[] categories = {"mon", "tue", "wen", "thu", "fri", "sat", "sun"};
private final String[] seriesNames = {"cewolfset.jsp", "tutorial.jsp", "testpage.jsp", "performancetest.jsp"};


/**
* Produces a Dataset that provides data for a graphic chart.
*
* @param params Parameters passed in request
* @return Dataset used to render chart
*/
public Object produceDataset(Map params) {


log.debug("producing data.");
DefaultCategoryDataset dataset = new DefaultCategoryDataset(){
/**
* @see java.lang.Object#finalize()
*/
protected void finalize() throws Throwable {
super.finalize();
log.debug(this +" finalized.");
}
};
for (int series = 0; series < seriesNames.length; series ++) {
int lastY = (int)(Math.random() * 1000 + 1000);
for (int i = 0; i < categories.length; i++) {
final int y = lastY + (int)(Math.random() * 200 - 100);
lastY = y;
dataset.addValue(y, seriesNames[series], categories[i]);
}
}
return dataset;


}



/**
* Gets the producerId attribute of the SeriesData object
*
* @return The producerId value
*/
public String getProducerId() {
return "GraphProducer";
}



/**
* Checks whether curent chart image has expired.
*
* @param params Parameters passed in Request
* @param since Date used for determining expiration
* @return Boolean indicating if Dataset has expired
*/
public boolean hasExpired(Map params, java.util.Date since) {
return false;
}


}

Dans la jsp je fais ainsi:




<jsp:useBean id="pageViews" class="com.scot.wipp.GraphProducer"/>


<cewolf:chart id="line" title="Page View Statistics" type="line" xaxislabel="Page" yaxislabel="Views">


<cewolf:data>


<cewolf:producer id="pageViews"/>


</cewolf:data>


</cewolf:chart>

<cewolf:img chartid="line" renderer="cewolf" width="800" height="800"/>



Au lieu de m'afficher l'image, il m'affiche ceci:

http://pwill.freezee.org/erreur.jpg




Pouvez-vous m'aider à régler ce problème ? depuis ce matin je trouve pas


J'ai aussi une question, comment puis-je utiliser cewolf à partir d'une classe qui extends
Action (cette classe est la réponse à une classe formulaire). Est-ce que je peux instancier des objets GraphProducer
dans la fonction execute de ma classe Action ?


Merci d'avance à ceux qui pourront m'éclairer !
0
Rejoignez-nous