Problemas com o xhtml

Boa tarde, eu estou no momento estudando JSF.

A algum tempo peguei uma apostila que ensinava a usar JSF criando uma pagina jsp, usando a pagina jsp tudo que eu tento funciona.

A algumas semanas atrás eu comprei um livro chamado programação Java para Web, bom nele fala que fazer paginas com jsp esta errado já que é uma tecnologia antiga e que hoje existem várias técnicas que a mesma não suporta, então o livro fala para usar o xhtml.

O problema é o seguinte quando eu faço as páginas nesse formato, primeiro o recurso ctrl+barra de espaço não funciona no eclipse e o pior de tudo é que nos navegadores não aparece a pagina, o internet explorer por exemplo abre uma janela perguntando se eu quero salvar a pagina.

vou colocar um código de exemplo aqui.

<?xml version=“1.0” encoding=“ISO-8859-1” ?>
<!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”>

<h:head>
<title>Teste inicial</title>
</h:head>
<h:body>
<h:outputText value=“Olá Mundo”/>
</h:body>
</html>

espero que vocês me ajudem.

Baixe os arquivos do Facelets, ele é que renderiza as páginas JSF em XHTML

Você está acessando isso dando dois cliques na página ou abrindo um servidor web?

Então os arquivos que o livro pede para baixar são:

commons-beanutils-1.8.3.jar
commons-collections-3.2.1.jar
commons-digester-2.1.jar
commons-logging-1.1.1.jar
jsf-api.jar
jsf-impl.jar
jstl-1.2.jar

O projeto é o GlassFish >> Project Mojarra do jsf.

Usando aquele código o servidor é o tomcat 6.0, quando eu inicio o tomcat e digito o endereço:

http://localhost:8080/financeiroweb/olamundo.jsf no internet explorer fala que é um arquivo desconhecido e pergunta se eu quero baixar a pagina.

No Safari, Firefox, Opera, Ghrome a página aparece, mas somente a barra do navegador com o título no caso:

Teste inicial JSF

Mas o texto Olá Mundo não.

Quanto a forma que eu estou executando o arquivo eu estou fazendo de 2 formas: dentro do eclipse > clicando com o botão direito do mouse > run as > run on server.

Ou ligando o tomcat e dando o endereço da pagina no navegador, mas o resultado é sempre aquele que eu falei.

Quanto ao problema de complementar os comandos, já consegui resolver baixando o plugin do JBoss Tools.

Espero que vcs consigam me ajudar.

como o amigo wiltonor disse, você precisa baixar uma implementação do Facelets.

dando uma olhada em http://java.net/projects/facelets/downloads, verifiquei que não há arquivos para baixar. É sabido que o site está em fase de migração e coisa e tal.

uma solução seria você baixar o GlassFish v3, que já possui a implementação do Facelets.

Bom segui oq vocês falaram e peguei na net o jsf-facelets-1.1.14.jar é esse que eu preciso, se for deve ser outro problema pq o mesmo continua.

Alguém tem uma outra ideia?

Att

Eduardo Araujo

Olá, essa é minha primeira participação no GUJ, mas sem confete vamos ao que interessa.

Tenho mesmo problema que o xguedes, mas com um toque a mais de problema: O IE8 tenta baixar TODAS as minhas páginas em xhtml! mesmo quando não estou usando jsf/php/o que for. Basta nomea-las como xhtml que o senhor IE8 quer baixar!

E agora?!

Opa, com qual url vc esta tentando acessar?

pagina.xhtml ou pagina.jsf?

se nao me engano vc precisa acessar com .jsf na extensao, senao vc recebera a pagina como download.

No seu web.xml existe um parametro que tem algo deste tipo *.jsf, isto quer dizer que vc acessara suas paginas com a extensao .jsf

Para fazer um teste mude este parametro para *.guj e vc passara a acessar suas paginas com extensao .guj

Usando xhtml num projeto JSF o IE aceitava tranquilo. Tanto usando *.jsf quanto o diretório faces na configuração do web.xml.

Problema de incompatibilidade do IE com o XHTML é sério. Só pra quem tiver curiosidade e quiser saber um pouco sobre XHTML, usar ou não, esta aqui um ótimo texto: http://brunotorres.net/xhtml-pensando-no-futuro

Eu me frustrei, vou pro HTML 4.01 Strict quando NÃO estiver usando JSF.

Resolvi o problema:

O problema existe pq o eclipse gera o automaticamente o arquivo faces-config.xml para o padrão 1.0 do JavaServerFaces… e no livro usamos um padrão mais atual que é o 2.0, vou passa oq vc tem que mudar no faces-config.xml para resolver o problema:

<?xml version="1.0" encoding="ISO-8859-1" ?>

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" > —> no seu essas linhas vai esta 1_0 é so mudar td para 2.0 como esta ao lado.

Não estou conseguindo acessar o localhost:8080/FinanceiroWeb/usuario.jsf, nem o olamundo.jsf.

Dá o mesmo erro que já falaram anteriormente:

HTTP Status 404 ? /FinanceiroWeb/olamundo.jsf
type Status report
message /FinanceiroWeb/olamundo.jsf
description The requested resource (/FinanceiroWeb/olamundo.jsf) is not available.
Apache Tomcat/6.0.32

Porém, o meu não aparece essas mensagens de sincronização. Outra coisa é que consigo acessar diretamente o localhost:8080/FinanceiroWeb/olamundo.xhtml, mas não localhost:8080/FinanceiroWeb/usuario.xhtml (este apresenta o mesmo erro que colei aqui).

O Decio disse que devo copiar diretamente pelo Elipse, e não pelo SO. Copio os arquivos, clico com o botão direito na pasta WEB-INF/lib dentro do Eclipse e em seguida em paste. É esse o procedimento correto?

Desde já agradeço bastante qualquer ajuda. Estou precisando bastante resolver esse problema.

P.S.: o meu arquivo faces-config.xml já está como o xguedes recomenda no tópico anterior.

Bom dia!

Eu estou com o um problema parecido com o amigo simulador_java.Temos o mesmo livro e estou seguindo o passos do livro.

O que acontece, ele pede para criar um arquivo olamundo.xhtml para testar a instalacao e configuracao do jsf.
Porem quando crio o arquivo olamundo.xhtml nao pucha nada o arquivo fica em branco.Ele nao pucha o codigo abaixo para inseir o codigo p/ teste.

<?xml version="1.0" encoding="ISO-8859-1" ?>

<h:head>

Teste inicial

O que pode ser?

Grande esse problema que vc esta falando acontece geralmente pq a versão do seu faces-config.xml esta errada o eclipse ele tenta ajudar montando para vc esse arquivo, mas ele monta na versão antiga e isso gera um problema na versão nova.

tenta isso:

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

abs

Obrigado Xguedes fiz aqui e deu certo.

Valeu

Como vc resolveu isso?

Crio um arquivo face-config.xml? ou onde ele está?

Segui uma outra dica de trocar o TomCat por uma versão mais antiga. Fiz isso mas não funcionou.
De qualquer forma estou com esse TomCat mesmo o 6.33.

Alguem dá uma luz pq eu não to conseguindo sair do lugar!

HELP!
Obrigado

[quote=xguedes]Resolvi o problema:

O problema existe pq o eclipse gera o automaticamente o arquivo faces-config.xml para o padrão 1.0 do JavaServerFaces… e no livro usamos um padrão mais atual que é o 2.0, vou passa oq vc tem que mudar no faces-config.xml para resolver o problema:

<?xml version="1.0" encoding="ISO-8859-1" ?>

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" > —> no seu essas linhas vai esta 1_0 é so mudar td para 2.0 como esta ao lado.[/quote]

Eh isso ai, fiz e funcionou certinho… E eu achando que era problema do tomcat, kkkkkkk !
Boaa, Xguedes :slight_smile:

Tópico movido para desenvolvimento web.

Por que abriu em Java Básico? Se a dúvida era no xhtml, nem de Java era.

Pessoal ganhei o livro e comecei a codificar e estou com o mesmo problema deste tópico:
Minha página aparece em branco ao colocar a tag <h:outputText value=“Olá Mundo”/>
se coloco html puro aparece.

Tentei todas as alternativas propostas e não consegui resolver.

Configurei conforme o livro.

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE faces-config PUBLIC
    "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
    "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
<faces-config>
</faces-config>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<title>Teste Inicial JSF</title>
</h:head>
<h:body>
  <h:outputText value="Olá Mundo"/>
  xxx
  </h:body>
</html>

Aparece somente xxx

Se eu configurar o faces-config.xml, conforme abaixo:

<?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">   
</faces-config>

Apresenta o seguinte erro:
HTTP Status 500 - O aplicativo não foi iniciado corretamente na inicialização. Não foi possível encontrar Fábrica: javax.faces.render.RenderKitFactory

type Exception report

message O aplicativo não foi iniciado corretamente na inicialização. Não foi possível encontrar Fábrica: javax.faces.render.RenderKitFactory

description The server encountered an internal error that prevented it from fulfilling this request.

exception

java.lang.IllegalStateException: O aplicativo não foi iniciado corretamente na inicialização. Não foi possível encontrar Fábrica: javax.faces.render.RenderKitFactory
javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:804)
javax.faces.FactoryFinder.getFactory(FactoryFinder.java:306)
com.sun.faces.context.FacesContextImpl.(FacesContextImpl.java:127)
com.sun.faces.context.FacesContextFactoryImpl.getFacesContext(FacesContextFactoryImpl.java:93)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:300)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.43 logs.

Por favor ajuda.

Pessoal desculpa reabrir este tópico.

Consegui resolver excluindo o projeto, criando novamente e dessa vez baixei os arquivos direto da página do livro e editei o arquivo faces-config conforme vocês me indicaram aqui.

O livro não pede para baixar, javax.faces.jar. Pra mim resolveu.