Iniciando JSF

2 respostas
S

To tentando fazer o barato aí funcionar mas nada. Alguem pode dar uma mão.
Ambiente: windowx xp, tomcat6, java6

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>
		<description>The one and only HelloBean.</description>
		<managed-bean-name>helloBean</managed-bean-name>
		<managed-bean-class>org.bruno.bean.HelloBean</managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
	</managed-bean>
	<navigation-rule>
		<description>Navigation from the hello page.</description>
		<from-view-id>/hello.jsp</from-view-id>
		<navigation-case>
			<from-outcome>success</from-outcome>
			<to-view-id>/goodbye.jsp</to-view-id>
		</navigation-case>
	</navigation-rule>
</faces-config>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
	<display-name>Hello, World!</display-name>
	<description>Welcome to JavaServer Faces</description>
	
	<context-param>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>server</param-value>
    </context-param>

    <context-param>
        <param-name>javax.faces.CONFIG_FILES</param-name>
        <param-value>/WEB-INF/faces-config.xml</param-value>
    </context-param>

    <listener>
        <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
    </listener>
	
    <!-- 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>
hello.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<f:view>
	<html>
	<head>
	<title>JSF in Action - Hello, world!</title>
	</head>
	<body>
	<h:form id="welcomeForm">
		<h:outputText id="welcomeOutput" value="Welcome to JavaServer Faces!" style="font-family: Arial, sans-serif; font-size: 24;color: green;" />
		<p><h:message id="errors" for="helloInput" style="color: red" /></p>
		<p><h:outputLabel for="helloInput">
			<h:outputText id="helloInputLabel" value="Enter number of controls to display:" />
		</h:outputLabel> <h:inputText id="helloInput" value="#{helloBean.numControls}" required="true">
			<f:validateLongRange minimum="1" maximum="500" />
		</h:inputText></p>
		<p><h:panelGrid id="controlPanel" binding="#{helloBean.controlPanel}" columns="20" border="1" cellspacing="0" /></p>
		<h:commandButton id="redisplayCommand" type="submit" value="Redisplay" actionListener="#{helloBean.addControls}" />
		<h:commandButton id="goodbyeCommand" type="submit" value="Goodbye" action="#{helloBean.goodbye}" immediate="true" />
	</h:form>
	</body>
	</html>
</f:view>
e o erro infeliz
exception 

org.apache.jasper.JasperException: An exception occurred processing JSP page /web/hello.jsp at line 4

1: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2: <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
3: <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
4: <f:view>
5: 	<html>
6: 	<head>
7: 	<title>JSF in Action - Hello, world!</title>


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:515)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:408)
	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 

javax.servlet.ServletException: javax.servlet.jsp.JspException: Cannot find FacesContext
	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:855)
	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:784)
	org.apache.jsp.web.hello_jsp._jspService(hello_jsp.java:97)
	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:384)
	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)
qualquer coisa ajuda nessas horas...chuta que é macumba

2 Respostas

S

Seguinte…

quando vc chamar esse jsp, chame por hello.jsf , pois como vc pode ver no web.xml, a aplicação reconhecerá que é do contexto JSF tudo o que terminar por .jsf

está descrito abaixo

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

Se isso também não resolver, verifique cuidadosamente os jars da sua aplicação e se neles estão os jars do Contexto JSF.

Abraço.

S

Por esse erro passou mas agora ta dando outro.

Eu fiz umas mudanças no faces-config.xml no pacote dos Beans e o erro é esse

javax.servlet.ServletException: javax.servlet.jsp.JspException: javax.faces.el.EvaluationException: javax.faces.FacesException: javax.faces.FacesException: Can't instantiate class: 'teste.HelloBean'.. teste.HelloBean
	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:851)
	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:784)
	org.apache.jsp.web.hello_jsp._jspService(hello_jsp.java:97)
	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:384)
	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)
	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)

a classe ta lá, o .class fica no diretório certo, mas ele diz que não encontra. Alguem ajuda?

Criado 8 de janeiro de 2008
Ultima resposta 10 de jan. de 2008
Respostas 2
Participantes 2