Problema com exemplo de JSF

5 respostas
pinguin-suni

Boa Noite Amigos,

Estou implementando um exemplo de JSF onde na minha pasta lib possuo os seguintes arquivos .jar:

jsf-api.jar
jsf-impl.jar
mysql-connector-java-5.1.10-bin.jar

Meu arquivo faces-config.xml está assim:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE faces-config PUBLIC
"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
"http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
<faces-config>
    <navigation-rule>
        <from-view-id>/buscar.jsp</from-view-id>
        <navigation-case>
            <from-outcome>success</from-outcome>
            <to-view-id>/sucesso_busca.jsp</to-view-id>
        </navigation-case>
        <navigation-case>
            <from-outcome>failure</from-outcome>
            <to-view-id>/falha_busca.jsp</to-view-id>
        </navigation-case>
    </navigation-rule>
    <navigation-rule>
        <from-view-id>/inserir.jsp</from-view-id>
        <navigation-case>
            <from-outcome>success</from-outcome>
            <to-view-id>/sucesso_insercao.jsp</to-view-id>
        </navigation-case>
        <navigation-case>
            <from-outcome>failure</from-outcome>
            <to-view-id>/falha_insercao.jsp</to-view-id>
        </navigation-case>
    </navigation-rule>
    <managed-bean>
        <managed-bean-name>agenda</managed-bean-name>
        <managed-bean-class>AgendaDB</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
</faces-config>

E meu web.xml está assim:

<?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">
    <context-param>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>client</param-value>
    </context-param>
    
    <context-param>
        <param-name>javax.faces.CONFIG_FILES</param-name>
        <param-value>/WEB-INF/faces-config.xml</param-value>
    </context-param>
    
    <listener>
        <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
    </listener>

    <!-- Faces Servlet -->
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    
    <!-- Faces Servlet Mapping -->
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.jsf</url-pattern>
    </servlet-mapping>
</web-app>

Porém na hora de subir o projeto TomCat esta dando o seguinte erro:

Aug 27, 2011 11:40:12 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/local/java/jre/lib/i386/server:/usr/local/java/jre/lib/i386:/usr/local/java/jre/../lib/i386:/usr/local/java/jre/lib/i386/client:/usr/local/java/jre/lib/i386::/usr/java/packages/lib/i386:/lib:/usr/lib
Aug 27, 2011 11:40:12 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:exemplo-jsf' did not find a matching property.
Aug 27, 2011 11:40:12 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
Aug 27, 2011 11:40:12 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 697 ms
Aug 27, 2011 11:40:12 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Aug 27, 2011 11:40:12 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.26
Aug 27, 2011 11:40:13 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class com.sun.faces.config.ConfigureListener
java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3915)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4467)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:519)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Aug 27, 2011 11:40:13 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Skipped installing application listeners due to previous error(s)
Aug 27, 2011 11:40:13 PM org.apache.catalina.core.StandardContext start
SEVERE: Error listenerStart
Aug 27, 2011 11:40:13 PM org.apache.catalina.core.StandardContext start
SEVERE: Context [/exemplo-jsf] startup failed due to previous errors

Alguém poderia me dar uma luz do que pode estar acontecendo ??

Uso a versão Indigo do eclipse.

Desde já agradeço pela ajuda.

5 Respostas

pedruhenrik

ta faltando algo :

java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener

vê se ajuda:

http://www.guj.com.br/java/67302-erro-jsf-12–tomcat-resolvido-

http://www.guj.com.br/java/97490-comsunfacesconfigconfigurelistener

http://www.guj.com.br/java/82777-jsfjavalangnoclassdeffounderror-orgapachecommonsdigesterruleset

http://www.myeclipseide.com/PNphpBB2-viewtopic-t-12781.html

att,

pinguin-suni

Obrigado !!!

Graças aos links que você enviou consegui resolver meu problema…

Agora eu gostaria de saber só mais uma coisinha…

Se eu colocar no meu web.xml o seguinte trecho:

<welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>index.jsf</welcome-file>
    </welcome-file-list>

Se eu chama-se em meu navegador o endereço: http://localhost:8080/exemplo-jsf ele não deveria automaticamente redirecionar para a minha index.jsp ??

Ou eu estou enganado???

Pois quando tento acessar o link ele me retorna o seguinte trace de erro:

Aug 28, 2011 12:24:05 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 2286 ms
Aug 28, 2011 12:24:57 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.RuntimeException: Cannot find FacesContext
	at javax.faces.webapp.UIComponentClassicTagBase.getFacesContext(UIComponentClassicTagBase.java:1852)
	at javax.faces.webapp.UIComponentClassicTagBase.setJspId(UIComponentClassicTagBase.java:1669)
	at org.apache.jsp.index_jsp._jspx_meth_f_005fview_005f0(index_jsp.java:104)
	at org.apache.jsp.index_jsp._jspService(index_jsp.java:78)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	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.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	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:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:619)

Desde já agradeço pela atenção!

pedruhenrik

se a sua página estiver, por exemplo, dentro de um diretório dentro do webinf vc tem q declara lo.

webinf/paginas/index.jsp

ficaria:

<welcome-file-list> <welcome-file>/paginas/index.jsp</welcome-file> </welcome-file-list>

uma busca no google vai bem, rs.

att,

pinguin-suni

Entendi…

Bom… meu arquivo web.xml na parte que refere-se a lista de welcome files esta assim:

<welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>index.jsf</welcome-file> <!-- Adicionado apenas para testes -->
    </welcome-file-list>

O mapeamento de minha Faces Servlet esta assim:

<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>

Meu Listener esta assim:

<listener>
        <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
    </listener>

Entretanto ao chamar http://localhost:8080/exemplo-jsf/ sem colocar o index.jsf ele estoura a exceção de:

SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.RuntimeException: Cannot find FacesContext

Tem alguma outra coisa que eu preciso mapear em meu arquivo web.xml para a chamada funcionar ???

Desde já agradeço pela ajuda !

pinguin-suni

Alguém ???

:?

Eu estava pesquisando aqui no Google e vi um post dizendo que isso pode ser falta da lib mojarra.jar … essa informação procede ???

Desde já agradeço

:!:

Criado 27 de agosto de 2011
Ultima resposta 29 de ago. de 2011
Respostas 5
Participantes 2