Componente JSF

2 respostas
Psycopata

Eu criei um componente JSF para exibir gráficos na tela. É assim, eu dou os parâmetros e o meu componente gera um gráfico em tempo real (vulgo on fly).

Perfeito, porém, está acontecendo alguma coisa que quando eu tento rodar o projeto, o deploy não é efetivado e o projeto então não roda.

o erro que dá é:

29/05/2008 16:12:53 org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class com.sun.faces.config.ConfigureListener
javax.faces.FacesException: Can't parse configuration file: jndi:/localhost/graficoJSF/WEB-INF/faces-config.xml: Error at line 8 column 101: Element type 'faces-config' was not declared
	at com.sun.faces.config.ConfigureListener.parse(ConfigureListener.java:1438)
	at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:376)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4350)
	at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1244)
	at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:374)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
	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.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:196)
	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.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
	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(Thread.java:619)

tem uma linha que diz: javax.faces.FacesException: Can’t parse configuration file: jndi:/localhost/graficoJSF/WEB-INF/faces-config.xml: Error at line 8 column 101: Element type ‘faces-config’ . Porém, o no meu faces-config está tudo certo.

Pelo que eu pude enteder, parece que a definição da minha taglib é que está gerando algum erro ou alguma incopatibilidade.

Bom, está aki o meu faces-config:

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

<!-- =========== FULL CONFIGURATION FILE ================================== -->

<faces-config version="1.2" 
    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">

    <component>
        <component-type>br.com.bb.sigov.grafico.Grafico</component-type>
        <component-class>br.com.bb.sigov.grafico.GraficoComponente</component-class>
    </component>
    
    <managed-bean>
        <managed-bean-name>teste</managed-bean-name>
        <managed-bean-class>br.com.bb.sigov.teste.TesteGrafico</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
    
</faces-config>

E aqui está o meu arquivo tld:

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

<!-- =========== FULL CONFIGURATION FILE ================================== -->

<taglib version="1.2" 
        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">
    <tlib-version>1.0</tlib-version>
    <jsp-version>1.2</jsp-version>
    <short-name>grafico</short-name>
    <uri>http://bb.com.br/sigov/grafico</uri>
    <description>Tag gerada de gráficos - Desev. por Tiago Fraga</description>
    
    <tag>
        <name>graficoDados</name>
        <tag-class>br.com.bb.sigov.grafico.GraficoTag</tag-class>
        <attribute>
            <name>atributos</name>
            <required>true</required>
            <description>Recebe um objeto do tipo AtributoGrafico</description>
        </attribute>
        <attribute>
            <name>largura</name>
            <required>true</required>
        </attribute>
        <attribute>
            <name>altura</name>
            <required>true</required>
        </attribute>
        <attribute>
            <name>tipo</name>
            <required>true</required>
            <description>Qual tipo de gráfico</description>
        </attribute>
    </tag>
</taglib>

Bom, tanto no faces-config quanto no arquivo TLD, eu não achei erros.
Eu não sei se tenho que fazer alguma coisa no web.xml. Nos tutoriais que eu vi pela net não diz nada a respeito do web.xml.
De qualquer maneira, está aki o meu web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 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-app_2_5.xsd">
    <context-param>
        <param-name>com.sun.faces.verifyObjects</param-name>
        <param-value>false</param-value>
    </context-param>
    <context-param>
        <param-name>com.sun.faces.validateXml</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>client</param-value>
    </context-param>
    <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>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>faces/welcomeJSF.jsp</welcome-file>
        </welcome-file-list>
    </web-app>

Bom, então, esse erro de não realizar o deploy, alguém aki que já fez componentes JSF ou tagLibs, já passou por isso e sabe qual é o problema?

Eu sinceramente não sei o que fazer. A IDE não me acusa erros, e o tomcat só me fornece o log acima.

Muito Obrigado

2 Respostas

maurenginaldo

Oi,
uma pequena sugestão:

Já tive problemas com o Eclipse depois de um tempo programando, mexendo nos arquivos e no faces-config, dar esse erro.
Eu conferia o faces-config e nada de erro. Então eu dava um clean, reiniciava o eclipse e tudo voltava a funcionar.

Já reiniciou a sua IDE de desenvolvimento?

Psycopata

Já fiz isso.
eu fechei o tomcat, dei um clear no projeto, fechei a IDE e fui lá nos arquivos temporários e apaguei tudo.

Reiniciei a IDE e mesmo assim não funcionou.

Eu fiz um teste, eu criei um novo projeto, e mandei rodar, para ver se tinha algum problema com aIDE. Rodou.
Então, eu copiei a minha taglig e começou a dar o problema. Dai eu apaguei a taglib e o projeto voltou a rodar.

Por isso que eu acho que, ou eu devo ter esquecido alguma coisa, ou ter feito alguma coisa que gere incopatibilidade. Porém eu não consigo descobrir o que é!

Criado 29 de maio de 2008
Ultima resposta 30 de mai. de 2008
Respostas 2
Participantes 2