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!