Boa tarde,
Tõ iniciando em jsf. To tentando executar um exemplo bem básico do famoso alomundo, mas não tô conseguindo.
Toda a estrutura, incluindo a mensagem de erro quando executo, está na imagem anexa. Essa é a aplicação:
http://www.java2s.com/Code/Java/J2EE/HelloWorldJSF.htm
Tá exatamente como no exemplo.
Grato!
JSF: Erro básico
17 Respostas
essa sua tela jsp, está como welcome-file, no seu web.xml ?
Sim, meus arquivos são os q seguem:
=========================
CLASSE BEAN:
public class HelloWorldBean {
private String hello = "Hello in the JavaServer Faces World!";
public String getHello () {
return this.hello;
}
}
=========================
FACES-CONFIG
<managed-bean>
HelloWorldBean
eu.czeczotka.HelloWorldBean
session
=========================
WEB.XML
<display-name>
HelloWorldJSF
<description>
Hello in the JavaServer Faces World!
<listener>
<listener-class>
org.apache.myfaces.webapp.StartupServletContextListener
<servlet>
Faces Servlet
javax.faces.webapp.FacesServlet
1
<servlet-mapping>
Faces Servlet
*.jsf
<welcome-file-list>
helloworld.jsp
=========================
HELLOWORLD.JSP
<%@ taglib uri=“http://java.sun.com/jsf/core” prefix=“f” %>
<%@ taglib uri=“http://java.sun.com/jsf/html” prefix=“h” %>
<%-- HelloWorldJSF - author Jakub Czeczotka --%>
HelloWorldJSFTenta colocar no welcome-file list a página como /jsf/helloWorld.jsp
Tenta colocar no welcome-file-list como /jsf/HelloWorld.jsp
Caso você tenha mais dúvidas de como fazer um hello world, aqui tem um passo a passo: JSF - Hello World, AutoComplete.
Opte por xhtml ao invés de jsp. É melhor para você.
Amigo, fiz do jeito q vc indicou, mas o erro persiste.
Tentei fazer o exemplo do AUTOCOMPLETE, mas tbm não consegui. Devo estar me atrapalhando na questão do mapeamento.
Mas tô fazendo de forma idêntica aos exercicios.
Como pode estar errado??
Caso você tenha mais dúvidas de como fazer um hello world, aqui tem um passo a passo: JSF - Hello World, AutoComplete.Opte por xhtml ao invés de jsp. É melhor para você.
Fiz esse exemplo e funciona apenas se eu acessar a aplicação diretamente pelo endereço: http://localhost:8080/ProjectJSF/index.xhtml. Pois, ao executar a aplicação, a barra de endereços apresenta o valor http://localhost:8080/ProjectJSF/ e a seguinte mensagem de erro na página:
type Status report
message /ProjectJSF/
description The requested resource (/ProjectJSF/) is not available.
Imagino q seja a configuraçao no web.xml. Mas não sei como mudar. Meu web.xml tá assim:
<?xml version="1.0" encoding="UTF-8"?>
Faces Servlet
javax.faces.webapp.FacesServlet
1
Faces Servlet
.jsf
/faces/
faces/index.xhtml
Desse modo você ñ vai conseguir.
Tente fazer como aqui: http://uaihebert.com/?p=834&page=7
tente mudar
<welcome-file>faces/index.xhtml</welcome-file>
para
<welcome-file>index.xhtml</welcome-file>
tente mudarMas funciona mesmo ele não tendo mapeado xhtml para o web.xml?
<welcome-file>faces/index.xhtml</welcome-file>para
<welcome-file>index.xhtml</welcome-file>
Não. Desculpem.
Se ele mapear *.xhtml para o Faces Servlet como vc postou
o welcome-file mapeado para faces/index.xhtml irá funcionar com o index.xhtml no diretório WebContent?
Ops. ignore this
Se eu copiar e colar a URL direto para um navegador, digamos, o Explorer http://localhost:8080/ProjectoJsf/olaMundoJsf.jsf ela FUNCIONA! Porém, quando eu executo o projeto, a URL q aparece no eclipse eh http://localhost:8080/ProjectoJsf/, e NÃO funciona. Dá esse erro: Como resolver???
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: java.lang.RuntimeException: Cannot find FacesContext
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause
java.lang.RuntimeException: Cannot find FacesContext
javax.faces.webapp.UIComponentClassicTagBase.getFacesContext(UIComponentClassicTagBase.java:1852)
javax.faces.webapp.UIComponentClassicTagBase.setJspId(UIComponentClassicTagBase.java:1669)
org.apache.jsp.olaMundoJsf_jsp._jspx_meth_f_005fview_005f0(olaMundoJsf_jsp.java:106)
org.apache.jsp.olaMundoJsf_jsp._jspService(olaMundoJsf_jsp.java:80)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.27 logs.
amigo você está usando jsp ou páginas xhtml?
seu arquivo web.xml está com os dois?
<url-pattern>*.jsf</url-pattern>
e
<url-pattern>/faces/*</url-pattern>
eu sempre uso somente o primeiro e depois e sempre uso páginas xhtml, porém, na chamada do web.xml chamo as páginas index.xhtml como index.jsf
se está usando JSF 2 não use mais JSP, páginas xhtml são mais rápidas do que JSP e poderá no JSF 2 mapear os bean com anotações.
Olá Rogerio,
Sim, o seu problema está na configuração do seu arquivo web.xml. Mais
especificamente na configuração do url-pattern do FacesContext em relação
ao seu welcome-file.
Para corrigir o problema altere essas duas configurações do seu web.xml para:
Configuração das páginas iniciais padrão:
<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
e o Mapeamento das páginas JSF
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
