MyFaces - Dúvida

3 respostas
Psycopata

Olá todos!!!

Alguém aqui desenvolve usando o MyFaces? Se sim, poderia me passar um exemplo de uso da tag rich:paint2D.

É o seguinte, ao usar essa tag, ela está gerando um erro. Só que eu não consigo descobrir o que é esse erro. como nos sites não mostram como configurar o servidor, eu estou achando que deve ser alguma coisa que eu não estou colocando.

Bom, vou postar o erro:

SEVERE: Servlet.service() for servlet jsp threw exception
javax.el.ELException: Not a Valid Method Expression:  #{grf.desenha}
	at org.apache.el.lang.ExpressionBuilder.createMethodExpression(ExpressionBuilder.java:205)
	at org.apache.el.ExpressionFactoryImpl.createMethodExpression(ExpressionFactoryImpl.java:57)
	at org.apache.jsp.testeJSF_jsp._jspx_meth_rich_005fpaint2D_005f0(testeJSF_jsp.java:179)
	at org.apache.jsp.testeJSF_jsp._jspx_meth_f_005fview_005f0(testeJSF_jsp.java:119)
	at org.apache.jsp.testeJSF_jsp._jspService(testeJSF_jsp.java:77)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
	at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:338)
	at org.apache.myfaces.application.jsp.JspViewHandlerImpl.buildView(JspViewHandlerImpl.java:481)
	at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:334)
	at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:189)
	at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
	at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:140)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:152)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:154)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:260)
	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:366)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:493)
	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:175)
	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:844)
	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(Unknown Source)

Então, conta disso eu queria um exemplo que eu pudesse rodar aki e ver linha a linha o que que está errado no meu código.

Se facilitar, vou postar o meu código:

classe de atributos

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bb.com.br.sigov.grafico;

import java.io.Serializable;

import org.jfree.chart.plot.PlotOrientation;

/**
 *
 * @author f9343091
 */
public class AtributosGrafico implements Serializable
{
    /**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private Chave [] chv;
    
    private String titulo;
    private String textoEixoX;
    private String textoEixoY;
    private PlotOrientation orientacao;
    private boolean legenda;
    private boolean dicas;
    private boolean url;
    
    //--------------------------------------------------------------------------
    public AtributosGrafico()
    {
    }
    //--------------------------------------------------------------------------
    public Chave[] getChv()
    {
        return chv;
    }

    public void setChv(Chave[] chv)
    {
        this.chv = chv;
    }

    public String getTitulo()
    {
        return titulo;
    }

    public void setTitulo(String titulo)
    {
        this.titulo = titulo;
    }

    public PlotOrientation getOrientacaoVertical()
    {
        return PlotOrientation.VERTICAL;
    }

    public PlotOrientation getOrientacaoHorizontal()
    {
        return PlotOrientation.HORIZONTAL;
    }

    public String getTextoEixoX()
    {
        return textoEixoX;
    }

    public void setTextoEixoX(String textoEixoX)
    {
        this.textoEixoX = textoEixoX;
    }

    public String getTextoEixoY()
    {
        return textoEixoY;
    }

    public void setTextoEixoY(String textoEixoY)
    {
        this.textoEixoY = textoEixoY;
    }

    public boolean isLegenda()
    {
        return legenda;
    }

    public void setLegenda(boolean legenda)
    {
        this.legenda = legenda;
    }

    public boolean isDicas()
    {
        return dicas;
    }

    public void setDicas(boolean dicas)
    {
        this.dicas = dicas;
    }

    public boolean isUrl()
    {
        return url;
    }

    public void setUrl(boolean url)
    {
        this.url = url;
    }

    public PlotOrientation getOrientacao()
    {
        return orientacao;
    }

    public void setOrientacao(String direcao)
    {
        direcao = direcao.toLowerCase();
        if (direcao.equals("vertical"))
            this.orientacao = PlotOrientation.VERTICAL;
        else
            this.orientacao = PlotOrientation.HORIZONTAL;
    }
}

classe que desenha o gráfico

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bb.com.br.sigov.grafico;

import java.awt.Graphics2D;
import java.awt.image.BufferedImage;

/**
 *
 * @author f9343091
 */
public class DesenhaGrafico
{
    public DesenhaGrafico()
    {
    }
    //--------------------------------------------------------------------------
    public void desenha(Graphics2D g2d, Object atributos)
    {
        AtributosGrafico at = (AtributosGrafico)atributos;
        GeraGrafico gg = new GeraGrafico();
        TesteGrafico tg = new TesteGrafico();
        BufferedImage img = gg.fabricaDeGraficos(tg.getDados(), "barra").createBufferedImage(150, 300);
        g2d = img.createGraphics();
    }
    public String getNome()
    {
    	return "Tiago";
    }
}

fases-conf.xml

<?xml version="1.0" encoding="UTF-8"?>

<faces-config
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"
    version="1.2">
	
    
    <managed-bean>
        <managed-bean-name>grf</managed-bean-name>
        <managed-bean-class>bb.com.br.sigov.grafico.DesenhaGrafico</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
    
    <managed-bean>
        <managed-bean-name>atributos</managed-bean-name>
        <managed-bean-class>bb.com.br.sigov.grafico.AtributosGrafico</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
    
</faces-config>

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">
	<display-name>Tomahawk</display-name>
	<context-param>
        <param-name>org.richfaces.SKIN</param-name>
        <param-value>blueSky</param-value>
    </context-param>
    <filter> 
        <display-name>RichFaces Filter</display-name> 
        <filter-name>richfaces</filter-name> 
        <filter-class>org.ajax4jsf.Filter</filter-class> 
    </filter> 
    <filter-mapping> 
        <filter-name>richfaces</filter-name> 
        <servlet-name>Faces Servlet</servlet-name>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
    </filter-mapping>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>
	<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>/faces/*</url-pattern>
	</servlet-mapping>
</web-app>

é isso!

3 Respostas

Psycopata

Poxa, ninguém usa richFaces?

P

Eu tambem utilizo rich-faces , mas estou tendo os mesmos problemas que vc ao utilizar o pant2D, e nao encontrei nenhuma solução…

rafaelglauber

sugestão: utilize outra implementação JSF, na própria documentação do RichFaces tem alguns comentários sobre as diferenças em alguns filtros, inclusive na própria assinatura, onde temos que alterar o web.xml para o MyFaces funcionar, mas como disse, é só uma sugestão, nada comprovado sobre uma possível incompatibilidade.

Criado 10 de junho de 2008
Ultima resposta 29 de jul. de 2008
Respostas 3
Participantes 3