Boa Tarde!
Sou iniciante em jsf , estou desenvolvendo uma aplicação ,porem estou com um problema alguem pode me ajudar?
O erro e o seguinte “Servlet.service() for servlet Faces Servlet threw exception”.
Console:
GRAVE: Servlet.service() for servlet Faces Servlet threw exception
java.io.FileNotFoundException: /usuario.xhtml Not Found in ExternalContext as a Resource
at com.sun.faces.facelets.impl.DefaultFaceletFactory.resolveURL(DefaultFaceletFactory.java:224)
at com.sun.faces.facelets.impl.DefaultFaceletFactory.resolveURL(DefaultFaceletFactory.java:265)
at com.sun.faces.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:193)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:741)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:100)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:509)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at financeiro.web.filter.ConexaoHibernateFilter.doFilter(ConexaoHibernateFilter.java:30)
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: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:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
faces-config
<?xml version="1.0" encoding="UTF-8"?> usuarioBean financeiro.web.UsuarioBean request<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>
<from-outcome>inicio</from-outcome>
<to-view-id>/index.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>usuario</from-outcome>
<to-view-id>/usuario.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/usuario.xhtml</from-view-id>
<navigation-case>
<from-outcome>sucesso</from-outcome>
<to-view-id>/mostraUsuario.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
usuario.xhtml
<h:head>
Cadastro de Usuários
</h:head>
<h:body>
Cadastro de Usuários
<h:form id=“cadastro”>
<h:messages/>
<h:inputHidden value="#{usuarioBean.usuario.codigo}"/>
<h:inputHidden value="#{usuarioBean.usuario.ativo}"/>
<h:panelGrid columns="2">
<h:outputLabel value="Nome:" for="nome"/>
<h:inputText id="nome" label="Nome" value="#{usuarioBean.usuario.nome}" size="30" maxlength="30" required="true" requiredMessage="Voçê não tem nome?">
<f:validateLength minimum="10" maximum="30"/>
</h:inputText>
<h:outputLabel value="Data Nascimento" for="data"/>
<h:inputText id="data" label="Data Nascimento" value="#{usuarioBean.usuario.nascimento}" size="10" maxlength="10" required="true">
<f:convertDateTime dateStyle="medium"/>
</h:inputText>
<h:outputLabel value="Celular:" for="celular"/>
<h:inputText id="celular" label="Celular" value="#{usuarioBean.usuario.celular}" size="10"/>
<h:outputLabel value="e-Mail:" for="email"/>
<h:panelGroup>
<h:inputText id="email" label="e-Mail" value="#{usuarioBean.usuario.email}" size="50" maxlength="50" required="true" validadorMessage="e-mail inválido">
<f:validateRegex pattern="[a-zA-Z0-9\-\_\.]+@[a-zA-Z0-9\-\_\.]+"/>
</h:inputText>
<h:message for="email"/>
</h:panelGroup>
<h:outputLabel value="Idioma:" for="idioma"/>
<h:selectOneMenu id="idioma" value="#{usuarioBean.usuario.idioma}">
<f:selectItem itemValue="pt_BR" itemLabel="Português"/>
<f:selectItem itemValue="en_US" itemLabel="English"/>
<f:selectItem itemValue="es_ES" itemLabel="Espanhol"/>
</h:selectOneMenu>
<h:outputLabel value="Login:" for="login"/>
<h:inputText id="login" label="Login" value="#{usuarioBean.usuario.login}" size="15" maxlength="15" required="true" validatorMessage="Login dever ter no mínimo 5 e no máximo 15 caracteres e só pode ter os simbolos '.' e '_'.">
<f:validateRegex pattern="([a-z]|[0-9]|[.]|[_]){5,15}"/>
</h:inputText>
<h:outputLabel value="Senha" for="senha"/>
<h:inputSecret id="senha" label="Senha" value="#{usuarioBean.usuario.senha}" size="10" maxlength="10" required="true" redisplay="true"/>
<h:outputLabel value="Confirmar Senha:" for="confirmarsenha"/>
<h:inputSecret id="confirmarsenha" label="Confirmar Senha" value="#{usuarioBean.confirmarSenha}" size="10" maxlength="10" required="true" redisplay="true"/>
</h:panelGrid>
<h:commandButton action="#{usuarioBean.salvar}" value="Salvar"/>
</h:form>
</h:body>
UsuarioBean.java
package financeiro.web;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import financeiro.usuario.Usuario;
import financeiro.usuario.UsuarioRN;
@ManagedBean(name=“usuarioBean”)
@RequestScoped
public class UsuarioBean {
private Usuario usuario = new Usuario();
private String confirmarSenha;
/**
* @return the usuario
*/
public String novo(){
this.usuario = new Usuario();
this.usuario.setAtivo(true);
return "usuario";
}
public String salvar(){
FacesContext context = FacesContext.getCurrentInstance();
String senha = this.usuario.getSenha();
if(!senha.equals(this.confirmarSenha)){
FacesMessage facesMessage = new FacesMessage("A senha não foi confirmada corretamente");
context.addMessage(null, facesMessage);
return null;
}
UsuarioRN usuarioRN = new UsuarioRN();
usuarioRN.salvar(this.usuario);
return "usuarioSucesso";
}
public Usuario getUsuario() {
return usuario;
}
/**
* @param usuario the usuario to set
*/
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
/**
* @return the confirmarSenha
*/
public String getConfirmarSenha() {
return confirmarSenha;
}
/**
* @param confirmarSenha the confirmarSenha to set
*/
public void setConfirmarSenha(String confirmarSenha) {
this.confirmarSenha = confirmarSenha;
}
}
http status 500
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: java.io.FileNotFoundException: /usuario.xhtml Not Found in ExternalContext as a Resource
financeiro.web.filter.ConexaoHibernateFilter.doFilter(ConexaoHibernateFilter.java:44)
root cause
java.io.FileNotFoundException: /usuario.xhtml Not Found in ExternalContext as a Resource
com.sun.faces.facelets.impl.DefaultFaceletFactory.resolveURL(DefaultFaceletFactory.java:224)
com.sun.faces.facelets.impl.DefaultFaceletFactory.resolveURL(DefaultFaceletFactory.java:265)
com.sun.faces.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:193)
com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:741)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:100)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:509)
financeiro.web.filter.ConexaoHibernateFilter.doFilter(ConexaoHibernateFilter.java:30)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.35 logs.
Apache Tomcat/6.0.35
Obrigado.