Java iniciando

5 respostas
CleitonMaciel

To fazendo um curso do livro Programação Java para Web.

Bom estou na seguinte situação.

meu 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_3_0.xsd"
	id="WebApp_ID" version="3.0">
	<display-name>FinanceiroWeb</display-name>
	<servlet>
		<servlet-name>FacesServlet</servlet-name>
		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>FacesServlet</servlet-name>
		<url-pattern>*.jsf</url-pattern>
	</servlet-mapping>

	<filter>
		<filter-name>conexaoFilter</filter-name>
		<filter-class>financeiro.web.filter.ConexaoHibernateFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>conexaoFilter</filter-name>
		<url-pattern>*.jsf</url-pattern>
	</filter-mapping>

	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>

</web-app>

meu faces-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<faces-config 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_2_0.xsd"
	version="2.0">
	
	<managed-bean>
		<managed-bean-name>usuarioBean</managed-bean-name>
		<managed-bean-class>financeiro.web.UsuarioBean</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>

	<navigation-rule>
		<from-view-id>*</from-view-id>
		<navigation-case>
			<from-outcome>inicio</from-outcome>
			<to-view-id>/index.html</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</to-view-id>
		</navigation-case>
	</navigation-rule>

</faces-config>

dentro da minha Classe UsuarioBean.java tem o método que faz um

private String novo(){
		this.usuario = new Usuario();
		this.usuario.setAtivo(true);
		return "usuario";                  // usando navegação implícita quando ao chamar o método ele abrira o USUARIO.XHTML que esta na pasta publico/usuario.xhtml 
	}
após subir o servidor Tomcat v7.0 Server ele abre a página index.html
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=publico/login.jsf">
ele chama o login com o botão de registra-se ao clicar
<h:commandButton action="#{usuarioBean.novo}" value="Registre-se"/>
chama o metodo novo que esta na classe UsuarioBean

ele retorna o erro ao seguir:

HTTP Status 500 - java.io.FileNotFoundException: /usuario.xhtml Not Found in ExternalContext as a Resource

type Exception report

message java.io.FileNotFoundException: /usuario.xhtml Not Found in ExternalContext as a Resource

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:31)

muito estranho ele dizer que o arquivo /usuario.xhtml Not Found
pois o arquivo esta na pasta correta.

o arquivo usuario.xhtml
esta na pasta

WebContent publico login.xhtml usuario.xhtml usuarioSucesso.xhtml

alguém pode me dar uma LUZ....

grande abraço.

corretamente
ao clicar no botão de registro que esta na

5 Respostas

RodrigoKaos

<navigation-case> <from-outcome>usuario</from-outcome> <to-view-id>usuario.xhtml</to-view-id> </navigation-case> </navigation-rule>

N seria /publico/usuario.xhtml???

CleitonMaciel

então brother já havia mudado o endereço do arquivo xhtml mas não deu certo, rs.. parece que essas coisas só acontece comigo.

dei uma conferida novamente no faces-config.xml
<managed-bean>
		<managed-bean-name>usuarioBean</managed-bean-name>
		<managed-bean-class>financeiro.web.UsuarioBean</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>

	<navigation-rule>
		<from-view-id>*</from-view-id>
		<navigation-case>
			<from-outcome>inicio</from-outcome>
			<to-view-id>/index.html</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</to-view-id>
		</navigation-case>
	</navigation-rule>

se alguém poder da uma olhada, sinceramente to perdido.
vou deixar o link do projeto pra ser analisado.

[url]http://www.mediafire.com/?huxtm8qpq0bhm6l[/url]

página de erro:
HTTP Status 500 - java.io.FileNotFoundException: /usuario.xhtml Not Found in ExternalContext as a Resource

type Exception report

message java.io.FileNotFoundException: /usuario.xhtml Not Found in ExternalContext as a Resource

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:31)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.42 logs.
RodrigoKaos

[i]Cara o que eu disse ta correto, teu programa ta procurando na raiz, e não encontra pq está em outra pasta.
O erro que da em sequencia é no ManagedBean, to no trabalho agora to olhando aos poucos assim que der posto o resto.

[/i]

CleitonMaciel

Obrigado Rodrigo, enquanto isso vou pesquisar…

CleitonMaciel

Rodrigo mexendo e remexendo resolvi o problema.

seguinte coisa de novato mesmo que come muita mosca pra aprender!
na minha pasta financeiro.usuario tinha um UsuarioBean e na pasta financeiro.web também tinha o mesmo arquivo porem com informações diferentes.

bom resolvi o problema indicando o local do arquivo /publico/usuario.xhtml apesar do livro fazer da forma q estava… tudo bem.

apaguei as classes duplicadas UsuarioBean.jar e recriei ela na pasta correta…

obrigado pela ajuda valeu!

Criado 10 de agosto de 2013
Ultima resposta 16 de ago. de 2013
Respostas 5
Participantes 2