Seguindo com o tutorial de como Configurar o JSF 1.2 + Tomahawk:Arquivo WEB.XML <?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID"version="2.5"><servlet><servlet-name>Faces Servlet</servlet-name><servlet-class>javax.faces.webapp.FacesServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>Faces Servlet</servlet-name><url-pattern>*.jsf</url-pattern></servlet-mapping><filter><filter-name>MyFacesExtensionsFilter</filter-name><filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class><init-param><param-name>uploadMaxFileSize</param-name><param-value>20m</param-value></init-param></filter><!-- extension mapping for adding <script/>, <link/>, and other resource tags to JSF-pages --><filter-mapping><filter-name>MyFacesExtensionsFilter</filter-name><!-- servlet-name must match the name of your javax.faces.webapp.FacesServlet entry --><servlet-name>Faces Servlet</servlet-name></filter-mapping><!-- extension mapping for serving page-independent resources (javascript, stylesheets, images, etc.) --><filter-mapping><filter-name>MyFacesExtensionsFilter</filter-name><url-pattern>/faces/myFacesExtensionResource/*</url-pattern></filter-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file><welcome-file>index.html</welcome-file></welcome-file-list></web-app>Notas do arquivo WEB.XMLA linha 19 e a extensao das paginas que serao chamadas. Voce pode estar alterando isto. Neste modelo, voce chamara as paginas com jsf com a extensao .jsf (ex. http://localhost:8080/MeuProjeto/ola.jsf)Da linha 23 ate a linha 59, sao os Filtros de extensao (nao sao necessarias essas linhas caso use JSF puro, elas sao necessarias para o uso do Tomahawk). Tive bastante problema com isso... nao conseguia rodar minha aplicacao, depois verifiquei no site http://myfaces.apache.org/tomahawk/extensionsFilter.html a necessidade dessa configuracao no WEB.XML para o Tomahawk.Inicie o servidor e pronto! Cewolf e um framework para desenvolvimento de graficos para web jsp/servlet utilizando o padrao MVC. Temos uma classe para gerar os dados do grafico e um arquivo jsp para exibicao do mesmo. Neste tutorial utilizarei o graficos do tipo timeseries.Primeiro e necessario baixar os arquivos e coloca-los no classpath do projeto:http://cewolf.sourceforge.net/new/index.htmlCopie tambem os arquivos TLD do cewolf para a pasta WEB-INF.Neste exemplo, a metodologia aplicada foi a seguinte:Tenho um servlet que pega varios dados de outra pagina e com alguns desses dados, chamo o construtor da classe que gera os dados do grafico (passando os dados que voce quiser pelo construtor). A Classe trata os dados do grafico e retorna um Dataset que sera lido pelas tags do cewolf no jsp.Vamos ao que interessa... Apos alocado os jars no seu projeto, devemos configurar o web.xml conforme abaixo:web.xml<servlet><servlet-name>CewolfServlet</servlet-name> <servlet-class>de.laures.cewolf.CewolfRenderer</servlet-class></servlet><servlet-mapping><servlet-name>CewolfServlet</servlet-name><url-pattern>/cewolf/*</url-pattern></servlet-mapping>Uma vez configurado, criemos a classe de dados do grafico...Dataset.javaimport 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.time.Minute;import org.jfree.data.time.TimeSeries;import org.jfree.data.time.TimeSeriesCollection;import de.laures.cewolf.DatasetProduceException;import de.laures.cewolf.DatasetProducer;import de.laures.cewolf.links.CategoryItemLinkGenerator;import de.laures.cewolf.tooltips.CategoryToolTipGenerator;//Devemos implementar todos estas interfaces... public class Dataset implements DatasetProducer, CategoryToolTipGenerator, CategoryItemLinkGenerator, Serializable {//A serie do grafico e em TimeSeriesprivate TimeSeries series;//Construtor que recebe como argumento um objeto vindo do servlet//Para graficos dinamicos criei este construtor. O objeto passado pode ser o que quiser.//No caso passei uma lista de um objeto com diversos valores de horas e dadaspublic Dataset( List<MeuObjeto> listaDados ){// Instancia uma nova serie. O argumento e o nome da serieseries = new TimeSeries( "nomeQueQuiserParaSerie" );// Note que criamos UMA serie apenas (acima), pois o grafico so tera uma linha (serie) de exibicao. // Se quisermos mais linhas (series), basta criarmos novos TimeSeries. // Ex. TimeSeries serie1 = new TimeSerie( "nomeDaSerie1" );// Ex. TimeSeries serie2 = new TimeSerie( "nomeDaSerie2" );// Percorre cada objeto da lista e adiciona os dados na seriefor( MeuObjeto d : listaDados ){//Adicionamos os dados do objeto na serie series.add( new Minute( d.getMinuto(), d.getHora(), d.getDia(), d.getMes(), d.getAno(), d.getValor() ); // O Metodo acima "series.add( )" possui dois argumentos, um com RegularTimePeriod e outro com o valor *da serie. //O RegularTimePeriod pode ser um "new Day(), new Hour(), new Minute(), etc" basta saber que //tipo de dados vai usa. Para saber mais acesse a API da classe RegularTimePeriod (jogue o nome no *google)}}//Este