Problema com JSF

10 respostas
C

Olá pessoal,

Estou trabalhando com JSF e JPA. Eu estava quase terminando o meu projeto quando, em uma das últimas modificações, o sistema como um todo parou de funcionar. Já fazem três dias que tento resolver o problema, mas não consigo… Minha última tentativa foi alterar o conteúdo do meu arquivo index.jsp, para mostrar um Hello World. Segue abaixo o código da página.

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


<html>
<head></head>
<body>
<f:view>
	<h:outputText value="hello world" />
</f:view>
</body>
</html>

Contudo, obtive a seguinte mensagem de erro.

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

6: <html>
7: <head></head>
8: <body>
9: <f:view>
10: 	<h:outputText value="hello world" />
11: </f:view>
12: </body>


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:467)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:371)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


root cause 

javax.servlet.ServletException: Cannot find FacesContext
	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:846)
	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
	org.apache.jsp.index_jsp._jspService(index_jsp.java:73)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


root cause 

javax.servlet.jsp.JspException: Cannot find FacesContext
	javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:427)
	com.sun.faces.taglib.jsf_core.ViewTag.doStartTag(ViewTag.java:125)
	org.apache.jsp.index_jsp._jspx_meth_f_005fview_005f0(index_jsp.java:88)
	org.apache.jsp.index_jsp._jspService(index_jsp.java:63)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

Já olhei se as bibliotecas jsf-api, jsf-facelets, jsf-impl e jstl estavam presentes e estavam

O meu web.xml é o seguinte.

<?xml version="1.0"?>
<web-app 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">
 <display-name>Jurisprudencia</display-name>
 <context-param>
  <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
  <param-value>server</param-value>
 </context-param>
 <!-- <error-page>
		<exception-type>javax.faces.convert.ConverterException</exception-type>
		<location>/pages/error.jsf</location>
		</error-page>-->
 <context-param>
  <param-name>org.richfaces.SKIN</param-name>
  <param-value>DEFAULT</param-value>
 </context-param>
 <context-param>
  <param-name>org.ajax4jsf.SKIN</param-name>
  <param-value>classic</param-value>
 </context-param>
 <context-param>
  <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
  <param-value>.xhtml</param-value>
 </context-param>
 <context-param>
  <param-name>facelets.REFRESH_PERIOD</param-name>
  <param-value>2</param-value>
 </context-param>
 <filter>
  <display-name>RichFaces Filter</display-name>
  <filter-name>richfaces</filter-name>
  <filter-class>org.ajax4jsf.Filter</filter-class>
 </filter>
 <filter>
  <display-name>Ajax4jsf Filter</display-name>
  <filter-name>ajax4jsf</filter-name>
  <filter-class>org.ajax4jsf.Filter</filter-class>
 </filter>
 <filter>
  <filter-name>SessionTimeoutFilter</filter-name>
  <filter-class>view.SessionTimeoutFilter</filter-class>
 </filter>
 <filter-mapping>
  <filter-name>richfaces</filter-name>
  <servlet-name>Faces Servlet</servlet-name>
  <dispatcher>REQUEST</dispatcher>
  <dispatcher>FORWARD</dispatcher>
  <dispatcher>INCLUDE</dispatcher>
 </filter-mapping>
 <filter-mapping>
  <filter-name>ajax4jsf</filter-name>
  <servlet-name>Faces Servlet</servlet-name>
  <dispatcher>REQUEST</dispatcher>
  <dispatcher>FORWARD</dispatcher>
  <dispatcher>INCLUDE</dispatcher>
 </filter-mapping>
 <filter-mapping>
  <filter-name>SessionTimeoutFilter</filter-name>
  <url-pattern>*.jsf</url-pattern>
 </filter-mapping>
 <listener>
  <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
 </listener>
 <!-- Minhas alterações para tratamento do término da sessão -->
 <listener>
  <listener-class>view.MySessionListener</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>
 <login-config>
  <auth-method>BASIC</auth-method>
 </login-config>
</web-app>

e o meu faces-config.xml é este

<?xml version="1.0" encoding="UTF-8"?>
<!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>
 <converter>
  <converter-id>classeConverter</converter-id>
  <converter-class>view.ClasseConverter</converter-class>
 </converter>
 <converter>
  <converter-id>userConverter</converter-id>
  <converter-class>view.UserConverter</converter-class>
 </converter>
 <converter>
  <converter-id>orgaoConverter</converter-id>
  <converter-class>view.OrgaoConverter</converter-class>
 </converter>
 <!--  <managed-bean>
		<description>User Name Bean</description>
		<managed-bean-name>user</managed-bean-name>
		<managed-bean-class>model.User</managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
		<managed-property>
		<property-name>name</property-name>
		<property-class>java.lang.String</property-class>
		<value/>
		</managed-property>
		</managed-bean>
	-->
 <managed-bean>
  <description>Formulario Bean</description>
  <managed-bean-name>formularioBean</managed-bean-name>
  <managed-bean-class>view.FormularioBean</managed-bean-class>
  <managed-bean-scope>session</managed-bean-scope>
 </managed-bean>
 <managed-bean>
  <description>Ajuda Bean</description>
  <managed-bean-name>ajudaBean</managed-bean-name>
  <managed-bean-class>view.AjudaBean</managed-bean-class>
  <managed-bean-scope>session</managed-bean-scope>
 </managed-bean>
 <navigation-rule>
  <from-view-id>/formulario.jsp</from-view-id>
  <navigation-case>
   <from-outcome>listar</from-outcome>
   <to-view-id>/listar.jsp</to-view-id>
  </navigation-case>
  <navigation-case>
   <from-outcome>editar</from-outcome>
   <to-view-id>/editar.jsp</to-view-id>
  </navigation-case>
  
 </navigation-rule>
 <navigation-rule>
  <from-view-id>/listar.jsp</from-view-id>
  <navigation-case>
   <from-outcome>detalhar</from-outcome>
   <to-view-id>/detalhar.jsp</to-view-id>
  </navigation-case>
  <navigation-case>
   <from-outcome>editar</from-outcome>
   <to-view-id>/editar.jsp</to-view-id>
  </navigation-case>
 </navigation-rule>
 <navigation-rule>
  <from-view-id>/detalhar.jsp</from-view-id>
  <navigation-case>
   <from-outcome>listar</from-outcome>
   <to-view-id>/listar.jsp</to-view-id>
  </navigation-case>
  <navigation-case>
   <from-outcome>integra</from-outcome>
   <to-view-id>/integra.jsp</to-view-id>
  </navigation-case>
 </navigation-rule>
 <navigation-rule>
  <from-view-id>/editar.jsp</from-view-id>
  <navigation-case>
   <from-outcome>listar</from-outcome>
   <to-view-id>/listar.jsp</to-view-id>
  </navigation-case>
 </navigation-rule>
 <navigation-rule>
  <navigation-case>
   <from-outcome>logout</from-outcome>
   <to-view-id>/login.jsp</to-view-id>
  </navigation-case>
 </navigation-rule>
 <navigation-rule>
  <navigation-case>
   <from-outcome>formulario</from-outcome>
   <to-view-id>/formulario.jsp</to-view-id>
  </navigation-case>
 </navigation-rule>
 <navigation-rule>
  <from-view-id>/integra.jsp</from-view-id>
  <navigation-case>
   <from-outcome>detalhar</from-outcome>
   <to-view-id>/detalhar.jsp</to-view-id>
  </navigation-case>
 </navigation-rule>
 <application>
  <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
  <message-bundle>messages</message-bundle>
 </application>
</faces-config>

Tanto o web.xml quanto o faces-config.xml estão dentro do web-inf. Não sei mais o q fazer.

10 Respostas

Javabuntu

você lembra qual foi a última alteração antes de dar o erro?

pelo erro ai na página de teste index.jsp, na linha 9 ele indica erro no <f:view>, se você usando jsf 1.1 no caso precisaria usar a tag <f:verbatim> mas creio que não seja teu caso…

pode postar o código completo da exception…

Rafael.bnc

Que versão do richfaces vc esta usando ? Pois, agora ele é integrado com ajax4jsf e a sua configuração fica errada pare esse caso.

C

Javabuntu:
você lembra qual foi a última alteração antes de dar o erro?

pelo erro ai na página de teste index.jsp, na linha 9 ele indica erro no <f:view>, se você usando jsf 1.1 no caso precisaria usar a tag <f:verbatim> mas creio que não seja teu caso…

pode postar o código completo da exception…

oi javabuntu,

a última vez que o sistema funcionou foi quando eu tentava usar o dataTable do richfaces para desenhar algumas tabelas em uma página de ajuda. Tive que criar um bean tão-somente para consegui usar o dataTable (vide AjudaBean no faces-config). Depois disso, vi que o componente usava facelets e que o meu projeto, por algum motivo, não estava reconhecendo. Então, nada tais bibliotecas à configuração do projeto. Isso foi o começo do fim… A bronca é que agora eu já mexi tanto, procurando por esse erro, que não me lembro mais em que mexi. Quando eu chegar ao trabalho, vou tentar retirar o AjudaBean e juntamente com os demais códigos do help, e desconfigurá-los do faces-config.

Com relação à exception, é “tudo” isso que está aí =/ Lembro que algumas vezes dava uma outra exceção, dizendo que o arquivo index.jsp não era uma xml válido. O prior é que conferir td e não havia erro algum. Continuei tirando os bugs até chegar aqui.

Ademais estou usando sim o jsf 1.1, uma vez que ainda estamos em fazer de migração do tomcat 5.5 (que não suporta jsf 1.2) para o jboss. O pior é que o sistema estava funcionando e essas últimas modificações foram para criar apenas a página de ajuda. Eu tenho outras páginas que as tags <f:view>, <h:outputText>, etc. funcionavam. =/

C

Oi Rafael,

Não estou com o código no momento, mas, se eu não me engano, estou usando a versão 3.1.0 do richfaces. Na verdade, estou usando o richfaces padrão do dinamic web project do red hat developer studio (um eclipse com alguns componentes já integrados). De qq forma, qual seria a configuração correta? A partir de qual versão o richfaces foi integrado ao ajax4fsj? Estou achando que o erro está na bibliotecas. Vc sabe me dizer onde encontro uma tabela de compatibilidades entre diferentes versões de tecnologias que integram o jsf?

Javabuntu

vamos lá, tem algumas coisas que não estão batendo:

não entendi isso, afinal você adicionou agora ou já tinha as bibliotecas do facelets?

pra você usar facelets você tem duas opções:
usa com extensão .jsp e inicia teus arquivos assim:

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"

ou utiliza .xhtml e inicia teus arquivos assim:

<html xmlns="http://www.w3.org/1999/xhtml"

ou seja, no seu exemplo não está usando de maneira nenhuma o facelets:

1. <%@ taglib uri="http://richfaces.org/rich" prefix="rich"%> 2. <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> 3. <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> 4. 5. 6. <html> 7. <head></head> 8. <body> 9. <f:view> 10. <h:outputText value="hello world" /> 11. </f:view> 12. </body> 13. </html>

e o você definiu o facelets no seu web-xml e não está usando nada:

<context-param> <param-name>javax.faces.DEFAULT_SUFFIX</param-name> <param-value>.xhtml</param-value> </context-param> <context-param> <param-name>facelets.REFRESH_PERIOD</param-name> <param-value>2</param-value> </context-param>

sobre o erro que está ocorrendo e apresentando no início:

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

você definiu no seu web-xml isso:

<servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.jsf</url-pattern> </servlet-mapping>
ou seja, todas suas páginas devem ser acessadas com .jsf, no caso index.jsf e não vai conseguir nunca acessar index.jsp

outra coisa, não tem definido uma página inicial que será carregada, não tem isso no seu web-xml:

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

depois de rodar, a menos que digite no seu navegador, …/index.jsf, não vai abrir nada mesmo, ok.

quanto ao seu comentário:

Ademais estou usando sim o jsf 1.1, uma vez que ainda estamos em fazer de migração do tomcat 5.5 (que não suporta jsf 1.2) para o jboss. O pior é que o sistema estava funcionando e essas últimas modificações foram para criar apenas a página de ajuda. Eu tenho outras páginas que as tags <f:view>, <h:outputText>, etc. funcionavam. =/

se você utilizar efetivamente o facelets, você consegue sim utilizar o JSF 1.2 no tomcat 5.5, eu utilizo JSF 1.2 no tomcat 5.5.26 com minhas páginas .xhtml

quanto a sua pergunta:

na versão 3.10 que você está utilizando o o ajax4jsf já está integrado no RichFaces, para usá-los você deve declararar as seguintes tags:

rich="http://richfaces.org/rich" // você já fez isso, ok a4j="https://ajax4jsf.dev.java.net/ajax"

veja ai o que ocorreu quanto ao que eu disse e qualquer dúvida estamos aí.
flw Hewerton
[EDIT]esqueci de algumas tags code :lol: [/EDIT]

C

Olá Javabuntu,

vou tentar responder um-a-um cada comentário.

Javabuntu:
vamos lá, tem algumas coisas que não estão batendo:

não entendi isso, afinal você adicionou agora ou já tinha as bibliotecas do facelets?

Realmente, ficaram faltando algumas palavras. Na parte que você destacou, eu queria dizer o seguinte: Então, adicionais tais bibliotecas ao projeto . Eu havia pego um exemplo de dataTable em http://livedemo.exadel.com/richfaces-demo/richfaces/dataTable.jsf;jsessionid=F4C44492868F09D9953878E102053D69?c=dataTable. Nesse exemplo, a definição do prefixo de tag xmlns:ui=“http://java.sun.com/jsf/facelets” estava sendo reconhecido pelo eclipse. Por isso, adicionei explicitamente as bibliotecas.

Mesmo explicitando o arquivo index.jsf, o erro persiste. Só para constar, no faces-config todas as páginas estão sendo acessadas como .jsf . Ademais, coloquei a tag no web.xml como vc especificou.

Com relação a isto, estou usando facelets na página ajuda.jsp. Na verdade, minha aplicação é bem maior. Só que não está funcionando mais nada. Por isso, isolei o problema, alterando o index.jsp para mostrar apenas um Hello World.

Coloquei essa opção na tag html da minha página jsp e simplifiquei o configurações do web.xml., mas apareceu outra exceção:

javax.servlet.ServletException: Error Parsing /index.jsp: Error Traced[line: 1] The markup in the document preceding the root element must be well-formed.
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:218)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:307)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)


root cause 

com.sun.facelets.FaceletException: Error Parsing /index.jsp: Error Traced[line: 1] The markup in the document preceding the root element must be well-formed.
	com.sun.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:234)
	com.sun.facelets.compiler.Compiler.compile(Compiler.java:104)
	com.sun.facelets.impl.DefaultFaceletFactory.createFacelet(DefaultFaceletFactory.java:192)
	com.sun.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:141)
	com.sun.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:93)
	com.sun.facelets.FaceletViewHandler.buildView(FaceletViewHandler.java:503)
	com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:553)
	org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216)
	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:107)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245)
	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:137)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:214)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:307)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)

O web.xml ficou assim:

<?xml version="1.0"?>
<web-app 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">
 <display-name>sistema</display-name>
 <context-param>
  <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
  <param-value>server</param-value>
 </context-param>
 <context-param>
  <param-name>org.richfaces.SKIN</param-name>
  <param-value>DEFAULT</param-value>
 </context-param>
 <context-param>
  <param-name>org.ajax4jsf.SKIN</param-name>
  <param-value>classic</param-value>
 </context-param>
 <filter>
  <display-name>RichFaces Filter</display-name>
  <filter-name>richfaces</filter-name>
  <filter-class>org.ajax4jsf.Filter</filter-class>
 </filter>
 <filter>
  <display-name>Ajax4jsf Filter</display-name>
  <filter-name>ajax4jsf</filter-name>
  <filter-class>org.ajax4jsf.Filter</filter-class>
 </filter>
 <filter-mapping>
  <filter-name>richfaces</filter-name>
  <servlet-name>Faces Servlet</servlet-name>
  <dispatcher>REQUEST</dispatcher>
  <dispatcher>FORWARD</dispatcher>
  <dispatcher>INCLUDE</dispatcher>
 </filter-mapping>
 <filter-mapping>
  <filter-name>ajax4jsf</filter-name>
  <servlet-name>Faces Servlet</servlet-name>
  <dispatcher>REQUEST</dispatcher>
  <dispatcher>FORWARD</dispatcher>
  <dispatcher>INCLUDE</dispatcher>
 </filter-mapping>
 <!-- <filter-mapping>
  <filter-name>SessionTimeoutFilter</filter-name>
  <url-pattern>*.jsf</url-pattern>
 </filter-mapping>-->
 <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>
 <login-config>
  <auth-method>BASIC</auth-method>
 </login-config>
 <welcome-file-list>
        <welcome-file>
          index.jsp
        </welcome-file>
    </welcome-file-list>
</web-app>

Quanto as demais comentário sobre jsf 1.1, jsf 1.2, richfaces e ajax4jsf, obrigado pelas informações, pois eu não sabia.

C

Descobri qual era o problema: a configuração entre o JSF e Facelets, mais especificamente o seguinte código dentro do faces-config.xml .

<application>  
   <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>  
   <message-bundle>messages</message-bundle>  
 </application>

Tirei o código e tudo funcionou corretamente. O código foi colocado automaticamente pelo Red Hat Developer Studio, por isso eu não sabia onde estava o erro.
Agora tenho uma outra dúvida: como faço para integrar o JSF com o Facelets? Ou melhor ainda, é possível usar a tag rich:dataTable em JSF sem usar facelets?

Javabuntu

cabradapeste:
Descobri qual era o problema: a configuração entre o JSF e Facelets, mais especificamente o seguinte código dentro do faces-config.xml .

<application>  
   <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>  
   <message-bundle>messages</message-bundle>  
 </application>

Tirei o código e tudo funcionou corretamente. O código foi colocado automaticamente pelo Red Hat Developer Studio, por isso eu não sabia onde estava o erro.
Agora tenho uma outra dúvida: como faço para integrar o JSF com o Facelets? Ou melhor ainda, é possível usar a tag rich:dataTable em JSF sem usar facelets?

sim não precisa usar facelets não, basta declarar as tags libs igual citei acima do RichFaces e do Ajax4JSF… e usar como qualquer outra tag declarada…

C

Oi Javabuntu,

Fiz como vc disse e funcionou. obrigado pela ajuda!

Javabuntu

cabradapeste:
Oi Javabuntu,

Fiz como vc disse e funcionou. obrigado pela ajuda!

blz cara…disponha…

flw Hewerton

Criado 14 de abril de 2008
Ultima resposta 17 de abr. de 2008
Respostas 10
Participantes 3