FacesContext not found com JBoss

8 respostas
jLady

Boa tarde pessoal,

Estou tentando subir uma aplicação JSF no JBoss… e quando eu tento acessar a página ele me da o seguinte erro:

ERROR [[jsp]] Servlet.service() for servlet jsp threw exception
java.lang.RuntimeException: FacesContext not found
at javax.faces.webapp.UIComponentClassicTagBase.getFacesContext(UIComponentClassicTagBase.java:321)

Alguém sabe o que pode ser e como corrigir?

Obrigada!
:wink:

8 Respostas

dreampeppers99

Por favor, poste toda stackTrace e faça isso dentro da tag [ code ] [/ code ]

jLady
javax.faces.FacesException: java.lang.RuntimeException: FacesContext not found
	at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:347)
	at org.apache.myfaces.application.jsp.JspViewHandlerImpl.buildView(JspViewHandlerImpl.java:486)
	at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:337)
	at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
	at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:140)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:187)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Thread.java:662)
Caused by: org.apache.jasper.JasperException: java.lang.RuntimeException: FacesContext not found
	at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:515)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:411)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:638)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:444)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:382)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:310)
	at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:341)
	... 25 more
Caused by: java.lang.RuntimeException: FacesContext not found
	at javax.faces.webapp.UIComponentClassicTagBase.getFacesContext(UIComponentClassicTagBase.java:321)
	at javax.faces.webapp.UIComponentClassicTagBase.setJspId(UIComponentClassicTagBase.java:228)
	at org.apache.jsp.index_jsp._jspx_meth_f_005fview_005f0(index_jsp.java:96)
	at org.apache.jsp.index_jsp._jspService(index_jsp.java:70)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
	... 35 more
dreampeppers99

você usa o jasper nesse projeto?

jLady

não… esse projeto é só um testezinho…
na minha pagina só tem um “teste” escrito dentro de uma tag jsf…
dai gerei o .war e subi o jboss…

esse war funciona no tomcat…
e uma jsp sem jsf funciona no jboss…

deve ser alguma configuração que estou perdendo, não?

dreampeppers99
Ou pode ser um jar a mais?
Caused by: org.apache.jasper.JasperException: java.lang.RuntimeException:
Você está utilizando o jsf api e impl seu ou do JBoss? E se for o seu qual versão está utilizando?

Se for myfaces:

<context-param>
  <param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name>
  <param-value>true</param-value>
</context-param>

ou sun:

<!-- JBossInjectionProvider provides resource injection for managed beans. -->
   <!-- See JSF 1.2 spec section 5.4 for details.                             -->
   <context-param>
     <param-name>com.sun.faces.injectionProvider</param-name>
     <param-value>org.jboss.web.jsf.integration.injection.JBossDelegatingInjectionProvider</param-value>
   </context-param>

Stealed from jboss forum.

jLady

como assim meu ou do jboss?

o que estou usando é myfaces 1.2 …

dreampeppers99

jLady:
como assim meu ou do jboss?
o que estou usando é myfaces 1.2 …

Não sei se aplica a todas as versões, mas as que trabalhei todas. Bem, é o seguinte o JBoss já te fornece uma implementação padrão do JSF (bem como a api) então quando você quer usar a API e IMPL de sua escolha (no seu exemplo, o myfaces 1.2) você deve explicitamente dizer ao JBoss para ele usar o seu jar como implementação e api do JSF e ignorar o que ele tem, entendeu?
Tente isso, edite seu web.xml e adicione essa config.

<context-param> <param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name> <param-value>true</param-value> </context-param>

jLady

Ah sim… entendi…
Porém não funcionou…

Eu sei que sou noob, hehe…

Mas por exemplo no tomcat eu coloco os jars na lib dele…

e no jboss?

Criado 26 de julho de 2011
Ultima resposta 27 de jul. de 2011
Respostas 8
Participantes 2