[RESOLVIDO]Redirecionamento xhtml errado

7 respostas
silver00

Quando tento startar uma página xhtml, tenho o seguinte erro: The request resource (/MeuProjeto/pages/protected/public/login.jsp) is not avaible.

O problema é que a minha página login é em .xhtml.

O meu web.xml esta assim:
<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-start-up>
</servlet>

<context-param>
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    <param-value>.xhtml</param-value>
</context-param>

<welcome-file-list>
    <welcome-file>/MeuProjeto/pages/protected/public/login.xhtml</welcome-file> //aqui tenho o erro file name references to "/MeuProjeto/pages/protected/public/login.xhtml" that does not exist in web content
</welcome-file-list>

<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
    <url-pattern>/faces/*</url-pattern>
</servlet-mapping>

O que será que ocorre de errado?

7 Respostas

diogozero

Isso ocorre quando você tenta acessar login.xhtml?
Como está o código da página que você está acessando?

silver00
diogozero:
Isso ocorre quando você tenta acessar login.xhtml? Como está o código da página que você está acessando?

Sim, ocorre quando tento acessar esta página. Antes era tudo em JSP, o que funcionava corretamente, porém como mudei para usar facets & cia, estou tendo dentre outros, esse erro.

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>CertificadoDigital</display-name>   
  <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>
    <url-pattern>.xhtml</url-pattern>
    <url-pattern>.jsf</url-pattern>
  </servlet-mapping>  
  <context-param>
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    <param-value>.xhtml</param-value>
  </context-param>  
   <welcome-file-list>
    <welcome-file>/pages/protected/public/index.html</welcome-file>
  </welcome-file-list>  
</web-app>
faces-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<faces-config version="2.0" xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xi="http://www.w3.org/2001/XInclude"
 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_2_0.xsd">
 <managed-bean>
  <managed-bean-name>ProfileBean</managed-bean-name>
  <managed-bean-class>br.com.certificadosdigitais.bean.ProfileBean</managed-bean-class>
  <managed-bean-scope>session</managed-bean-scope>
 </managed-bean>  
<navigation-rule>
	<from-view-id>/pages/protected/public/login.xhtml</from-view-id>
	<navigation-case>
			<from-outcome>cadastro</from-outcome>
			<to-view-id>/pages/protected/public/cadastroProfile.xhtml</to-view-id>
		<redirect/>
	</navigation-case>
</navigation-rule> 
<navigation-rule>
	<from-view-id>/pages/protected/public/cadastroProfile.xhtml</from-view-id>
	<navigation-case>
				<from-action>#{ProfileBean.validaLogin}</from-action>
				<from-outcome>sucesso</from-outcome>
			<to-view-id>/pages/protected/user/mainPage.xhtml</to-view-id>
		<redirect/>
	</navigation-case>
	<navigation-case>
				<from-action>#{ProfileBean.validaLogin}</from-action>
				<from-outcome>erro</from-outcome>
			<to-view-id>/pages/protected/public/mensagens/cadastroError.xhtml</to-view-id>
		<redirect/>
	</navigation-case>
</navigation-rule>
<navigation-rule>
	<display-name>loginError</display-name>
	<from-view-id>/pages/protected/public/mensagens/loginError.xhtml</from-view-id>
	<navigation-case>
			<from-outcome>voltar</from-outcome>
			<to-view-id>/pages/protected/public/login.xhtml</to-view-id>
		<redirect/>
	</navigation-case>
</navigation-rule>

<navigation-rule>
	<display-name>cadastroError</display-name>
	<from-view-id>/pages/protected/public/mensagens/cadastroError.xhtml</from-view-id>
	<navigation-case>
			<from-outcome>voltar</from-outcome>
			<to-view-id>/pages/protected/public/cadastroProfile.xhtml</to-view-id>
		<redirect/>
	</navigation-case>
</navigation-rule>
<navigation-rule>
<display-name>cadastroProfile</display-name>
<from-view-id>/pages/protected/public/cadastroProfile.xhtml</from-view-id>
	<navigation-case>
			<from-outcome>voltar</from-outcome>
			<to-view-id>/pages/protected/public/login.xhtml</to-view-id>
		<redirect/>
	</navigation-case>
</navigation-rule> 
</faces-config>
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 

<head>
	<meta http-equiv="Refresh" content="0; URL=/pages/protected/public/login.xhtml"/>
</head> 
	
</html>
login.xhtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"> 

<h:head></h:head> 
<h:body>
	<p>Login</p>
	<p>Teste</p>
	 
	<form>
		<h:panelGrid columns="2">					
			<h:outputLabel value="Login: " />
				<h:inputText value="#{ProfileBean.username}" required = "true" />				
			<h:outputLabel value="Password: " />
				<h:inputSecret value="#{ProfileBean.password}" required = "true" />				
			<h:commandButton value="Login" action="#{ProfileBean.validaLogin}"/>
			<h:commandButton value="Cadastro" action ="cadastro" immediate="true"/>
		</h:panelGrid>		
	</form>		 
</h:body> 
</html>
igor_ks

Como ta organizado seu projeto? Tira um print e manda pra gente…
Pelo jeito ele não está achando teu .xhtml

silver00

igor_ks:
Como ta organizado seu projeto? Tira um print e manda pra gente…
Pelo jeito ele não está achando teu .xhtml

Da uma olhada na imagem.


JARDEL_RODRIGUES

silver00:
igor_ks:
Como ta organizado seu projeto? Tira um print e manda pra gente…
Pelo jeito ele não está achando teu .xhtml

Da uma olhada na imagem.

silver00
tambem estou com o mesmo problema e nao conseguir resolver.

silver00

Aqui pelo menos deu certo, tenta colocar as seguintes linhas no seu web.xml

<servlet-mapping>  
    <servlet-name>Faces Servlet</servlet-name>  
    <url-pattern>/faces/*</url-pattern>  
    <url-pattern>.jsf</url-pattern>  
  </servlet-mapping>    

<context-param>
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    <param-value>.xhtml</param-value>
</context-param>
Eu retirei o
<url-pattern>*.xhtml</url-pattern>
e coloquei o context-param. Onde eu li, o JSF vem como padrão, o JSP, então devemos tornar o XHTML usando o DEFAULT_SUFFIX.
JARDEL_RODRIGUES

Silver00

Conseguir resolver o meu problema, no livro que acompanho (Programaçao Java para Web), eu tinha colocado os jars e adicionado build path, sendo que no exercicio do livro apenas era pra adicionar os jars na lib e nao add to build path…

tenta o seguinte: deleta os teus jars do projeto e roda tua pagina xhtml.

Criado 17 de dezembro de 2012
Ultima resposta 18 de dez. de 2012
Respostas 7
Participantes 4