Primeiro JSF, erro =(

26 respostas
O

Tudo bem galera… bom, estudei o JSP e consegui entendê-lo, fiz alguns exemplinhos da hora
aí resolvi começar a estudar o JSF… peguei uns vídeos do java Magazine, e lá ele dá um exemplo para começar um Hello World utilizando JSF
mas o meu não quis funcionar, e eu segui o exemplo igualzinho =(

tipo, pesquisei google e aki no fórum do guj, teve um kra q teve um erro quase igual o meu, aí mandaram ele executar o arquivo com a extensão .jsf e não .jsp
mas aqui não funcionou
vou anexar meus arquivos aqui:

helloworld.jsp
<%@ taglib uri=“http://java.sun.com/jsf/html” prefix=“h”%>
<%@ taglib uri=“http://java.sun.com/jsf/core” prefix=“f”%>

faces-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<managed-bean>
	<managed-bean-name>helloWorldBean</managed-bean-name>
	<managed-bean-class>br.eti.faces.HelloWorldBean</managed-bean-class>
	<managed-bean-scope>request</managed-bean-scope>
</managed-bean>

web.xml

<?xml version="1.0" encoding="UTF-8" ?>
<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>*.jsf</url-pattern>
</servlet-mapping>

extrai o arquivo myfaces-core-1.2.0-bin.zip, copiei os .jar da pasta lib e joguei na pasta lib do meu projeto
minha classe HelloWorldBean.java está em /opt/tomcat/webapps/helloworld/WEB-INF/classes/br/eti/faces
na hora de digitar no navegador, fiz como ele diz no vídeo: http://localhost:8080/helloworld/helloworld.jsp

aí dá um erro falando da tag <f:view> =(

vi num forum falando q há exemplos na página do myfaces, comecei a ver, mas está em inglês e pra mim q manja poko da parte de web fica difícil
se alguém puder me ajudar eu agradeceria mesmo
obrigado pela atenção, abrasss

26 Respostas

M

<h:outputText value="#(helloWorldBean.message)"/> estah errado
O certo seria entre chaves <h:outputText value="#{helloWorldBean.message}"/>

O
puts, agora deu isso:

eption: /helloworld.jsp(8,4) According to TLD or attribute directive in tag file, attribute value does not accept any expressions

org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)

org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)

org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148)

org.apache.jasper.compiler.Validator$ValidateVisitor.checkXmlAttributes(Validator.java:1172)

org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:819)

org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1507)

org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2336)

org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2386)

org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:838)

org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1507)

org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2336)

org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2386)

org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:838)

org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1507)

org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2336)

org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2386)

org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2392)

org.apache.jasper.compiler.Node$Root.accept(Node.java:489)

org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2336)

org.apache.jasper.compiler.Validator.validate(Validator.java:1737)

org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:178)

org.apache.jasper.compiler.Compiler.compile(Compiler.java:306)

org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)

org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)

org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

=( q foda

M

entao faz assim:
<h:outputText value="${helloWorldBean.message}"/>

O

puts Marlon Meneses, agora voltou a dar o erro na linha 6 falando da tag <f:view>

será q é algo q não importei???

só adicionei os .jar do myfaces core
tem q mandar algo do jsf? eu abaixei um arquivo jsf-1.2_04-b07-FCS.zip mas não tem nada .jar lá

=(

M

oq tah sendo mostrado nesse erro do <f:view>?

O

type Exception report

message

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

exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /helloworld.jsp [size=18]at line 6[/size]

3:
4:
5:
6: <f:view>
7: <h:form>
8: <h:outputText value="${helloWorldBean.message}"/>
9: </h:form>

Stacktrace:

org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

java.lang.RuntimeException: FacesContext not found

javax.faces.webapp.UIComponentClassicTagBase.getFacesContext(UIComponentClassicTagBase.java:238)

javax.faces.webapp.UIComponentClassicTagBase.getPreviousJspIdsSet(UIComponentClassicTagBase.java:1214)

javax.faces.webapp.UIComponentClassicTagBase.checkIfItIsInAnIterator(UIComponentClassicTagBase.java:1199)

javax.faces.webapp.UIComponentClassicTagBase.setJspId(UIComponentClassicTagBase.java:165)

org.apache.jsp.helloworld_jsp._jspx_meth_f_005fview_005f0(helloworld_jsp.java:95)

org.apache.jsp.helloworld_jsp._jspService(helloworld_jsp.java:69)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

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

=(

M

como eh q vc faz a xamada da pagina?
tem q ser com o contexto, no seu caso .jsf

O

bom, não sei se vc viu meus arquivos face-config.xml e web.xml, eu os copiei do jeito q tava no vídeo

e eu o chamo assim: [size=18]http://localhost:8080/helloworld/helloworld.jsp[/size]

no vídeo tbm tava assim o caminho mas num post eu vi alguém falando q tem q chamar com .jsf
mas com qual nome daí? heuhaue so burrico =(

O

localhost:8080/helloworld/helloworld.jsf não funciona
aí chutei localhost:8080/helloworld/helloWorldBean.jsf
tbm nao funfa, nada =(

E

obana_rox:
bom, não sei se vc viu meus arquivos face-config.xml e web.xml, eu os copiei do jeito q tava no vídeo

e eu o chamo assim: [size=18]http://localhost:8080/helloworld/helloworld.jsp[/size]

no vídeo tbm tava assim o caminho mas num post eu vi alguém falando q tem q chamar com .jsf
mas com qual nome daí? heuhaue so burrico =(

Opa nao é .jsp nao, é .jsf, sempre q vc usar jsf e nao renomear no Web.xml (Msm pq nao poderia renomear p/ .jsp, só .java, .php, .eu, .algumaCoisa) vc coloca .e oq vc escolheu, mas o Default é .jsf.
no meu blog tem um exemplo de um aplicativo JSF q pode te ajudar em algumas duvidas basicas, dá uma olhada.

http://www.javawora.blogspot.com

[]sssssssssssss :smiley:

M

eh o seguinte:
nesse trecho do web.xml

*.jsf

tah sendo configurado o contexto q vc deseja. Pode ser qualquer coisa. E isso serve pra mascarar a extensao da pagina. Se aih tah escrito *.jsf, significa q todas as paginas devem ser xamadas com a estensao .jsf. Por exemplo: eu tenho uma pagina jsp com o nome index.jsp entao a xamada desta vai ser index.jsf.
Sacou?!

O

opa Marlon Meneses e Heero Yuy, acho q entendi
mas eu naveguei localhost:8080/helloworld/helloworld.jsf e nao funcionou
renomeei minha classe helloworld.jsp para helloworld.jsf e tbm nao foi
q bosta =(

vou dar uma olhada no seu blog sim
agradeço a ajuda e se puderem fazer funcionar isso pra mim
não posso continuar sem fazer o hello world né haihie

G

obana eu te mandei uma mensagem…procure no seu perfil por Mens. Privadas…dê uma lida e qq coisa posta aí…

[/]'s

G

oopss…a mesma msg duas vezes não né

O

Heero Yuy:
obana_rox:
bom, não sei se vc viu meus arquivos face-config.xml e web.xml, eu os copiei do jeito q tava no vídeo

e eu o chamo assim: [size=18]http://localhost:8080/helloworld/helloworld.jsp[/size]

no vídeo tbm tava assim o caminho mas num post eu vi alguém falando q tem q chamar com .jsf
mas com qual nome daí? heuhaue so burrico =(

Opa nao é .jsp nao, é .jsf, sempre q vc usar jsf e nao renomear no Web.xml (Msm pq nao poderia renomear p/ .jsp, só .java, .php, .eu, .algumaCoisa) vc coloca .e oq vc escolheu, mas o Default é .jsf.
no meu blog tem um exemplo de um aplicativo JSF q pode te ajudar em algumas duvidas basicas, dá uma olhada.

http://www.javawora.blogspot.com

[]sssssssssssss :smiley:

seu blog tá show e o exemplo tbm deve tá bala
mas usa hibernate, e tals, nem sei JSF direito =( ahuehuahu
vou tentar algo + simples e depois vejo aki

vlw galera q tá tentando ajudar
qualqué ajuda é muitoooo bem vinda pq sou newbie =(

abras

E

obana_rox:
opa Marlon Meneses e Heero Yuy, acho q entendi
mas eu naveguei localhost:8080/helloworld/helloworld.jsf e nao funcionou
renomeei minha classe helloworld.jsp para helloworld.jsf e tbm nao foi
q bosta =(

vou dar uma olhada no seu blog sim
agradeço a ajuda e se puderem fazer funcionar isso pra mim
não posso continuar sem fazer o hello world né haihie

Nao é p/ renomear o .jsf
é p/ vc acessar como .jsf

exemplo pagina.jsp
http://localhost:8080/projeto/pagina.jsf

:smiley:

O

Heero Yuy:
obana_rox:
opa Marlon Meneses e Heero Yuy, acho q entendi
mas eu naveguei localhost:8080/helloworld/helloworld.jsf e nao funcionou
renomeei minha classe helloworld.jsp para helloworld.jsf e tbm nao foi
q bosta =(

vou dar uma olhada no seu blog sim
agradeço a ajuda e se puderem fazer funcionar isso pra mim
não posso continuar sem fazer o hello world né haihie

Nao é p/ renomear o .jsf
é p/ vc acessar como .jsf

exemplo pagina.jsp
http://localhost:8080/projeto/pagina.jsf

:smiley:

sim sim, eu fiz isso:
http://localhost:8080/helloworld/helloworld.jsf
não funcionou :frowning:

erro: server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: javax/servlet/jsp/jstl/core/Config
javax.faces.webapp.FacesServlet.service(FacesServlet.java:152)

não sei onde estou errando =(

E

obana_rox:
Heero Yuy:
obana_rox:
opa Marlon Meneses e Heero Yuy, acho q entendi
mas eu naveguei localhost:8080/helloworld/helloworld.jsf e nao funcionou
renomeei minha classe helloworld.jsp para helloworld.jsf e tbm nao foi
q bosta =(

vou dar uma olhada no seu blog sim
agradeço a ajuda e se puderem fazer funcionar isso pra mim
não posso continuar sem fazer o hello world né haihie

Nao é p/ renomear o .jsf
é p/ vc acessar como .jsf

exemplo pagina.jsp
http://localhost:8080/projeto/pagina.jsf

:smiley:

sim sim, eu fiz isso:
http://localhost:8080/helloworld/helloworld.jsf
não funcionou :frowning:

erro: server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: javax/servlet/jsp/jstl/core/Config
javax.faces.webapp.FacesServlet.service(FacesServlet.java:152)

não sei onde estou errando =(

Manda os fontes p/ meu e-mail q eu dou uma olhada. [email removido]

[]s

O

Heero Yuy:

Manda os fontes p/ meu e-mail q eu dou uma olhada. [email removido]

[]s

Aewwww heero yuy
mandei o email
espero q vc entenda o q eu digitei

vlw pela ajuda, até amanhã
abrasssss

E

obana_rox:
Heero Yuy:

Manda os fontes p/ meu e-mail q eu dou uma olhada. [email removido]

[]s

Aewwww heero yuy
mandei o email
espero q vc entenda o q eu digitei

vlw pela ajuda, até amanhã
abrasssss

bom vou ver qdo chegar em casa, mas manda num zip… flw :smiley:

O

huehue fico meio grande o zip mas enviei
kra, tentei fazer esse teste em casa usando Windows XP
mesma coisa, nao funfa =(
q será hein =\

O

opa, tem uma coisinha
no tutorial do guj fala pra adicionar no classpath a pasta lib do JSF, e acho q joguei do myFacescore =(

na minha variáveis de ambiente eu não tinha um CLASSPATH
tinha um PATH com os caminhos da pasta bin do Oracle, Java e MySQL
aí eu criei uma nova com nome CLASSPATH e adicionei o caminho, fiz certo?

G

fez…
PATH: Local de executaveis no sistema, por exemplo pelo windows quando vc vai no iniciar, executar e digita iexplore, como ele sabe que é para ir no c:\Arquivos de programas\Internet Explorer\IEXPLORE.EXE? Pq o c:\Arquivos de programas\Internet Explorer\ está no path… Assim tb funciona com os UNIX

CLASSPATH: Uma variavel de ambiente que é usada UNICA E EXCLUSIVAMENTE pelo java, que contem, como o nome diz, o local das suas classes auxilizares

O

aewww gustavinho, mandei mp pra vc

já aproveitando q eu esqueci de perguntar
como q ajeito o classpath aki no ubuntu ???

tenho o jsf e o myfacescore no Desktop, preciso jogar a lib deles no CLASSPATH

eu cheguei a modificar os classpath mas acho q coloquei em lugares errado
primeri num q tinha o PATH do Java, depois onde bash do tomcat
resolvi deletar pra naum dá pau aki

abraçowwwww

5

Fala ae obana_rox, conseguiu resolver o problema do seu teste? conseguiu aprender jsf?
Eu to começando a aprender jsf tb, e tive uns erros parecidos com os seus e consegui resolver, derrepente eu posso te ajduar.
Flw.

D

Olá, está faltando a JSTL,

baixe o arquivo http://jakarta.apache.org/site/downloads/downloads_taglibs-standard.cgi

e adicione os jars jstl.jar e standard.jar ao WEB-INF\lib

também já tive esse problema

abraços

Décio Heinzelmann Luckow

Criado 2 de agosto de 2007
Ultima resposta 30 de mai. de 2008
Respostas 26
Participantes 7