Problema com JSP+JSF+glassfish

6 respostas
P

Galera estou com o seguinte erro:

AVISO: StandardWrapperValve[jsp]: PWC1406: Servlet.service() for servlet jsp threw exception

java.lang.RuntimeException: Cannot find FacesContext

at javax.faces.webapp.UIComponentClassicTagBase.getFacesContext(UIComponentClassicTagBase.java:1855)

at javax.faces.webapp.UIComponentClassicTagBase.setJspId(UIComponentClassicTagBase.java:1672)

at org.apache.jsp.index_jsp._jspx_meth_f_view_0(index_jsp.java from :106)

at org.apache.jsp.index_jsp._jspService(index_jsp.java from :79)

at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:109)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:406)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:483)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:373)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)

at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)

at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)

at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)

at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)

at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)

at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)

at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)

at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)

at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)

at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)

at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)

at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)

at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)

at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)

at com.sun.grizzly.ContextTask.run(ContextTask.java:69)

at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)

at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)

at java.lang.Thread.run(Thread.java:662)

[color=darkred]A classe JSP:[/color]

<%@taglib uri=“http://java.sun.com/jsf/core” prefix=“f” %>
<%@taglib uri=“http://java.sun.com/jsf/html” prefix=“h” %>
<%@page contentType=“text/html” pageEncoding=“UTF-8”%>

Agenda JSF

Agenda



Inserir
Buscar

</body>

[color=darkred]web.xml:[/color]

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



javax.faces.PROJECT_STAGE
Development

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


<session-config>
    <session-timeout>
        30
    </session-timeout>
</session-config>

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

Se alguem puder me ajudar ai eu agradeço d+.

Ps: baixei o arquivo jstl.jar e pus na pasta lib do glass e adicionei na biblioteca do projeto.

6 Respostas

Z

Troque a tag <%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %> pela <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="f" %>

P

Zeh isso resolve em parte, mas intao agora como eu vou usar um view ou verbatin ? eu usando <%@taglib uri=“http://java.sun.com/jsf/core” prefix=“f”%>
eu consigo dar <f:view> e <f:verbatin> porém da o erro já exibido.

E agora?

Antes de mais nada obrigado pela atenção!

Z

você importou as bibliotecas do jsf 2.0?

Z
ok achei o problema.
<f:view>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Agenda JSF</title>
        </head>
        <body>

            <h:form>
                <center>
                    <h1> Agenda </h1>
                    <br><br>
                    <h3>
                        <h:outputLink value="inserir.jsf">
                            <f:verbatim>Inserir</f:verbatim>
                        </h:outputLink>
                        <br>
                        <h:outputLink value="buscar.jsf">
                            <f:verbatim>Buscar</f:verbatim>
                        </h:outputLink>
                    </h3>
                </center>
            </h:form>


        </body>
    </html>
</f:view>
utilize a tag antes da tag
marcos1EM
zehdapora:
ok achei o problema.
<f:view>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Agenda JSF</title>
        </head>
        <body>

            <h:form>
                <center>
                    <h1> Agenda </h1>
                    <br><br>
                    <h3>
                        <h:outputLink value="inserir.jsf">
                            <f:verbatim>Inserir</f:verbatim>
                        </h:outputLink>
                        <br>
                        <h:outputLink value="buscar.jsf">
                            <f:verbatim>Buscar</f:verbatim>
                        </h:outputLink>
                    </h3>
                </center>
            </h:form>


        </body>
    </html>
</f:view>
utilize a tag antes da tag

A tag não necessariamente precisa vir antes da tag , desde que não exista outras tags do jsf antes dela

marcos1EM

p3dr0h3nry, se na sua página incial existe código em JSF então no web.xml ela deve ser especificada com a extensão para a qual você configurou, no caso jsf.

Ex:

<welcome-file-list> <welcome-file>index.jsf</welcome-file> </welcome-file-list>
Ou então ná pagina inicial crie uma chamada forward para a sua página jsf
Ex:

<jsp:forward page="welcomeJSF.jsf"/>

Isso é uma das causas que causam o erro que você mencionou é isso. Alem disso, confirme se vc adicionou a libs do jsf no classpath do projeto.

Criado 18 de janeiro de 2011
Ultima resposta 19 de jan. de 2011
Respostas 6
Participantes 3