1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

[RESOLVIDO]Cewolf + Jfreechart. Erro no param value.

Pessoal da uma ajuda aqui. Estou desenvolvendo a criação de gráfico a um projeto, para criar os gráfico estou utilizando cewolf+jfreechart. Porem está dando um erro na hora de apresentar os gráficos. Esse erro de "convert string" também estava no parâmetros 'value="true"', consegui resolver da maneira apresentada abaixo no jsp , porem para as cores não estou conseguindo resolver da mesma forma, porque apresenta um problema "Value of the param" no '#' do #FFFFFF.

Detalhes do projeto: apache-tomcat-5.5.25, ant1.6.5, hibernate3, struts, cewolf1.2.3, jfreechart-1.0.14.

ps: Talvez se usar o jfreechart puro iria resolver o problema em questão, mas não queria solucionar desta forma.

Segue o erro e os arquivos.

Erro:

org.apache.jasper.JasperException: Unable to convert string "#FFFFFF" to class "java.io.Serializable" for attribute "value": Property Editor not registered with the PropertyEditorManager at org.apache.jasper.runtime.JspRuntimeLibrary.getValueFromPropertyEditorManager(JspRuntimeLibrary.java:884) at org.apache.jsp.public.pages.graficoFiscaliza_jsp._jspx_meth_cewolf_005fparam_005f3(graficoFiscaliza_jsp.java:390) at org.apache.jsp.public.pages.graficoFiscaliza_jsp._jspService(graficoFiscaliza_jsp.java:256) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301) at org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:213) at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:171) at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145) at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92) at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:381) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) at java.lang.Thread.run(Unknown Source)

Pagina JSP:

<%@page contentType="text/html"%>
<%@page import="de.laures.cewolf.ChartPostProcessor"%>
<%@taglib uri="http://cewolf.sourceforge.net/taglib/cewolf.tld" prefix="cewolf" %>
<HTML>
<HEAD>
<TITLE>Cewolf Tutorial - Step 1</TITLE>
<link href="cewolf.css" rel="stylesheet" type="text/css">
</HEAD>
<BODY bgcolor="#DDE8F2">
<H1>Cewolf Tutorial</H1>
<H2>A Simple Page View Statistics Chart</H2>
<HR>
This page shows the resulting chart when finishing the Cewolf tutorial on the <a href="http://cewolf.sourceforge.net">Cewolf homepage</a>.<p>

<jsp:useBean id="pageViews" class="de.laures.cewolf.example.PageViewCountData"/>

<jsp:useBean id="lineRenderer" class="de.laures.cewolf.cpp.LineRendererProcessor" />

<jsp:useBean id="visualEnhancer" class="de.laures.cewolf.cpp.VisualEnhancer" />

<jsp:useBean id="legendItems" class="de.laures.cewolf.example.PageViewCountData" />

<cewolf:chart 
    id="line" 
    title="Page View Statistics" 
    type="line" 
    xaxislabel="Page" 
    yaxislabel="Views">
    <cewolf:data>
        <cewolf:producer id="pageViews"/>
    </cewolf:data>
    <cewolf:chartpostprocessor id="lineRenderer">
            <cewolf:param name="shapes" value='<%=true%>'  />
            <cewolf:param name="outline" value='<%=true%>' />
            <cewolf:param name="useFillPaint" value='<%=true%>' />
            <cewolf:param name="fillPaint" value="#FFFFFF" />
            <cewolf:param name="useOutlinePaint" value='<%=true%>' />
            <cewolf:param name="outlinePaint" value="#000000" />
    </cewolf:chartpostprocessor>
    <%--
    <cewolf:chartpostprocessor id="visualEnhancer">
        <cewolf:param name="border" value="false"/>
        <cewolf:param name="rangeIncludesZero" value="false"/>
    </cewolf:chartpostprocessor>
    --%>
    <cewolf:chartpostprocessor id="legendItems">
        <cewolf:param name="0" value="#FF0000"/>
        <cewolf:param name="1" value="#FF0000"/>
        <cewolf:param name="2" value="#FF0000"/>
        <cewolf:param name="3" value="#FF0000"/>
    </cewolf:chartpostprocessor>
    <%--
    --%>
</cewolf:chart>
<p>
<cewolf:img chartid="line" renderer="/cewolf" removeAfterRender="true" width="500" height="400">
    <cewolf:map linkgeneratorid="pageViews" tooltipgeneratorid="pageViews"/>
</cewolf:img>
</BODY>
</HTML>

PageViewCountData:

package de.laures.cewolf.example;

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

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

import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;

public class PageViewCountData
    implements DatasetProducer, CategoryToolTipGenerator, CategoryItemLinkGenerator, Serializable
{
    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    private final String categories[] = {
        "mon", "tue", "wen", "thu", "fri", "sat", "sun"
    };

    private final String seriesNames[] = {
        "cewolfset.jsp", "tutorial.jsp", "testpage.jsp", "performancetest.jsp"
    };

    public Object produceDataset (Map params) throws DatasetProduceException
    {
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        for (int series = 0; series < seriesNames.length; series++)
        {
            int lastY = (int)(Math.random() * 1000D + 1000D);
            for (int i = 0; i < categories.length; i++)
            {
                int y = lastY + (int)(Math.random() * 200D - 100D);
                lastY = y;
                dataset.addValue(y, seriesNames[series], categories[i]);
            }
        }

        return dataset;
    }

    public boolean hasExpired (Map params, Date since)
    {
        return System.currentTimeMillis() - since.getTime() > 0L;
    }

    public String getProducerId()
    {
        return "PageViewCountData DatasetProducer";
    }

    public String generateLink (Object data, int series, Object category)
    {
        return seriesNames[series];
    }

    public String generateToolTip(CategoryDataset arg0, int series, int arg2)
    {
        return seriesNames[series];
    }
}

LegendItemPostProcessor:

package de.laures.cewolf.example;

import java.awt.Color;
import java.io.Serializable;
import java.util.Map;

import de.laures.cewolf.ChartPostProcessor;

import org.jfree.chart.JFreeChart;
import org.jfree.chart.LegendItem;
import org.jfree.chart.LegendItemCollection;
import org.jfree.chart.plot.CategoryPlot;

public class LegendItemPostProcessor implements ChartPostProcessor, Serializable
{
    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    public void processChart (JFreeChart chart, Map<String,String> params) {
        CategoryPlot plot = (CategoryPlot) chart.getPlot();
        LegendItemCollection liColl = plot.getLegendItems();

        for (int i = 0; i < liColl.getItemCount(); i++) {
            LegendItem li = liColl.get(i);
            String colorStr = params.get(String.valueOf(i));
            li.setLabelPaint(Color.decode(colorStr));
        }
    }
}

enter link description here

  • Pessoal acabei utilizando o google charts, foi bem simples ele funciona por javascript, entao incorporei na pagina que queria. abraços

    Luiz Claudio   22 de abr de 2016
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java jfreechart struts tomcat jsp ou faça a sua própria pergunta.