Socorro com exemplo básico de jsf

3 respostas
L

Pessoal, meu problema deve ser estremamente simples… mas sério, estou me irritando muito com isso aqui e me desanimando total. Tentei fazer o exemplo mais BASICO de JSF, uso eclipse e Jboss 4.0.4.

A estrutura dos meus diretorios é a seguinte:

  • root
    • web
      • META-INF
      • pages
        • inicio.jsp
      • WEB-INF
        • lib
          • os jars
        • web.xml
        • faces-config.xml
      • index.jsp

index.jsp

<html>
 <body>
  <jsp:forward page="/pages/inicio.jsp" />
 </body>
</html>

e no inicio.jsp eu só mostro “teste”. Funciona blz. Ai comecei a seguir exatamente o que o tutorial diz do JSF, e comecei a mudar o faces.config.xml e o web.xml.

Faces-config.xml

<?xml version="1.0"?>
<!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>
  <managed-bean>
    <managed-bean-name>bean</managed-bean-name>
    <managed-bean-class>pacote.Bean</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
  </managed-bean>
</faces-config>

Criei um bean qualquer só para dizer que tem, mas nem uso.

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <display-name>teste</display-name>

    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

ai meu inicio.sjp

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

<html>
	<body>
		<f:view>
	 	 	<h:outputText value="asdasd" />
 	 	</f:view>
 	 </body>
</html>

mas essa p**** não funciona… meu, ja to desanimando geral com isso, não consigo rodar o mais basico dos exemplos. Por favor, alguem sabe o que devo fazer!!!

Aconteceu dois erros:
um no jboss depois que fiz deploy

  • ERROR [UIComponentTag] Faces context not found. getResponseWriter will fail. Check if the FacesServlet has been initialized at all in your web.xml.
    outro quando chamo minha aplicação no browser
org.apache.jasper.JasperException: Exception in JSP: /pages/inicio.jsp:6

3: 
4: <html>
5: 	<body>
6: 		<f:view>
7: 	 	 	<h:outputText value="asdasd" />
8:  	 	</f:view>
9:  	 </body>


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:703)
	org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:670)
	org.apache.jsp.index_jsp._jspService(index_jsp.java:46)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

root cause

java.lang.NullPointerException
	javax.faces.webapp.UIComponentTag.setupResponseWriter(UIComponentTag.java:615)
	javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:217)
	org.apache.myfaces.taglib.core.ViewTag.doStartTag(ViewTag.java:71)
	org.apache.jsp.pages.inicio_jsp._jspx_meth_f_view_0(inicio_jsp.java:86)
	org.apache.jsp.pages.inicio_jsp._jspService(inicio_jsp.java:61)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:703)
	org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:670)
	org.apache.jsp.index_jsp._jspService(index_jsp.java:46)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

3 Respostas

R

Arrume seu web.xml ! ele deve ficar dessa forma:

<!-- Faces Servlet -->
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
 
    <!-- Faces Servlet Mapping -->
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.jsf</url-pattern>
    </servlet-mapping>

Arrume tb seu redirecionamento:

<jsp:forward page="/pages/inicio.jsp" />

Deve ficar assim:

<jsp:forward page="/pages/inicio.jsf" />

Certo !? sem stress :shock:

L

ai que ta, eu ja tentei de tudo. Por exemplo, fazendo assim como você fez, funciona, desde que eu não chame nenhuma tag jsf

index.jsp

<html>
	<body>
		<jsp:forward page="/pages/inicio.jsf" />
	</body>
</html>

inicio.jsp

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

<html>
	<body>
	sadasdsadskaj
	</body>
</html>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	<!-- Faces Servlet -->
     <servlet>
         <servlet-name>Faces Servlet</servlet-name>
         <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
         <load-on-startup>1</load-on-startup>
     </servlet>
  
     <!-- Faces Servlet Mapping -->
     <servlet-mapping>
         <servlet-name>Faces Servlet</servlet-name>
         <url-pattern>*.jsf</url-pattern>
     </servlet-mapping>
</web-app>

mas quando coloco qualquer tag para funcionar em inicio.jsp ele da erro:

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

<html>
	<body>
		<f:view>
			<h:outputText value="lalla" />
		</f:view>
	</body>
</html>

Da aquele erro no console do jboss e na pagina

org.apache.jasper.JasperException: Exception in JSP: /index.jsp:3

1: <html>
2: 	<body>
3: 		<jsp:forward page="/pages/inicio.jsf" />
4: 	</body>
5: </html>


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

root cause

org.apache.jasper.JasperException: Exception in JSP: /pages/inicio.jsp:6

3: 
4: <html>
5: 	<body>
6: 		<f:view>
7: 			<h:outputText value="lalla" />
8: 		</f:view>
9: 	</body>


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
	com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130)
	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
	org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:703)
	org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:670)
	org.apache.jsp.index_jsp._jspService(index_jsp.java:46)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

root cause

java.lang.NullPointerException
	javax.faces.webapp.UIComponentTag.setupResponseWriter(UIComponentTag.java:615)
	javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:217)
	org.apache.myfaces.taglib.core.ViewTag.doStartTag(ViewTag.java:71)
	org.apache.jsp.pages.inicio_jsp._jspx_meth_f_view_0(inicio_jsp.java:86)
	org.apache.jsp.pages.inicio_jsp._jspService(inicio_jsp.java:61)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
	com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130)
	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
	org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:703)
	org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:670)
	org.apache.jsp.index_jsp._jspService(index_jsp.java:46)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

Por isso que eu to ficando cabrero, seila se eu to usando as ferramentas erradas, porque os arquivos de configuração estão como os tutoriais mandam (ja tentei até variar).
O que eu faço é criar um dinamic web project no eclipse, ai edito o web.xml, crio um index.jsp, um inicio.jsp e dou um run on server (que faz o deploy e inicializa o jboss). Seila se é esse deploy que não empacota direito as coisas, mas quando vejo o .war parece que tá certinho. Tipo, parece que o treco tah de zoação, ou tem algum esquema que não sei mas tb não acho em lugar nenhum, todos tutoriais parecem ser tão faceis, mas qdo implemento, nunca roda.

L

Consegui, mas sem usar esse projeto do eclipse, nem usando run on server nem usando os jar’s que todos exemplos mandam usar.

Criei um projeto comum, depois todas as pastas padrões, e depois fiz um ant para compilar e fazer deploy, usando outros jar’s (myfaces.jar). AI funciona…

Criado 17 de maio de 2006
Ultima resposta 17 de mai. de 2006
Respostas 3
Participantes 2