JSF + action automatico

13 respostas
V

e ai…

Estou utilizando JSF no netbeans, preciso que uma pagina fique atualizando a cada 3 minutos, nao quero que o cliente fique clicando no botao do form.

sera q tem como ?

13 Respostas

yorgan

Bom, você pode utilizar o META com parametro refresh ou pode utilizar a tag do A4J poll.

[]´s

Daniel

V

o meta simula um refresh (f5), eu preciso que a cada 3 min. de um submit no form.

yorgan

Então utilize o poll. Se você estiver utilizando richfaces é só chamar a tag a4j:poll. Com ela você pode determinar um período para que determinado componente seja executado.

[]´s

Daniel

V

yorgan, estou usando jsf no netbeans e nao encontrei A4J poll, provelmente pq nao estou utilizando RichFaces, entao baixei richfaces-ui-3.2.1.GA, coloquei no lib, mas nao estou conseguindo utilizar, poderia me explicar como confirula-lo ?
Sou novo em JSF entao estou bem perdido ainda.

value…

yorgan

Você precisa alterar o seu web.xml e incluir o Richfaces.
Aqui tem um exemplo:

<?xml version="1.0"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
   	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	version="2.5">
    <display-name>a4jEchoText</display-name>
    <context-param>
        <param-name>org.richfaces.SKIN</param-name>
        <param-value>classic</param-value>
    </context-param>
    <context-param>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>server</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-mapping>
        <filter-name>richfaces</filter-name>
        <servlet-name>Faces Servlet</servlet-name>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
    </filter-mapping>
    <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>
    <welcome-file-list>
        <welcome-file>forward.jsp</welcome-file>
    </welcome-file-list>
</web-app>

[]´s

Daniel

V

entao, configurei esses dados no xml e inclui esta linha no jsp xmlns:a4j=“https://ajax4jsf.dev.java.net/ajax”, a partir daqui apareceu a tag, mas qndo vou abrir a pagina ocorre um exception

Caused by: com.sun.rave.web.ui.appbase.ApplicationException: org.apache.jasper.JasperException: An exception occurred processing JSP page /Page2.jsp at line 10

7: <jsp:root version="2.1" xmlns:a4j="https://ajax4jsf.dev.java.net/ajax" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"
8:     xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:webuijsf="http://www.sun.com/webui/webuijsf">
9:     <jsp:directive.page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"/>
10:     <a4j:poll action="#{Page2.btAtualizar_action}" reRender="tablePosicoes" interval="10000"/>
11:     <f:view>
12:         <webuijsf:page id="page1">
13:             <webuijsf:html id="html1" lang="">


java.lang.ClassCastException: org.ajax4jsf.component.AjaxViewRoot cannot be cast to org.ajax4jsf.component.html.AjaxPoll
        at org.ajax4jsf.taglib.html.jsp.AjaxPollTag.setProperties(AjaxPollTag.java:368)
        at javax.faces.webapp.UIComponentClassicTagBase.findComponent(UIComponentClassicTagBase.java:604)
        at javax.faces.webapp.UIComponentClassicTagBase.doStartTag(UIComponentClassicTagBase.java:1126)
        at org.apache.jsp.Page2_jsp._jspx_meth_a4j_005fpoll_005f0(Page2_jsp.java:176)
        at org.apache.jsp.Page2_jsp._jspService(Page2_jsp.java:144)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        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:630)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
yorgan

opa…tente declarar assim as taglibs:

<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ 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"%>
V

mesmo assim nao funcionou, estranho este problema de casting, parece conflito de jar’s.

Exception Details:  java.lang.ClassCastException
  org.ajax4jsf.component.AjaxViewRoot cannot be cast to org.ajax4jsf.component.html.AjaxPoll
yorgan

Verifiquei se você baixou os 3 jar´s do projeto:
richfaces-api-3.3.0.GA.jar
richfaces-impl-3.3.0.GA.jar
richfaces-ui-3.3.0.GA.jar

V

estou com os 3 mas da versao 3.2.1

V

acho q esta havendo algum conflito com algum jar do jsf q o netbeans utiliza ou q esta no lib do tomcat.
yorgan oq vc acha ?

yorgan

Pode ser.
Poste a lista de jars que está utilizando no projeto e a que deixou no tomcat.
Além disso poste o seu web.xml

[]´s

Daniel

V

web.xml

&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;
    &lt;display-name&gt;My First JSF Application&lt;/display-name&gt;
    &lt;context-param&gt;
        &lt;param-name&gt;javax.faces.STATE_SAVING_METHOD&lt;/param-name&gt;
        &lt;param-value&gt;client&lt;/param-value&gt;
    &lt;/context-param&gt;
    &lt;context-param&gt;
        &lt;param-name&gt;com.sun.faces.validateXml&lt;/param-name&gt;
        &lt;param-value&gt;true&lt;/param-value&gt;
    &lt;/context-param&gt;
    &lt;context-param&gt;
        &lt;param-name&gt;com.sun.faces.verifyObjects&lt;/param-name&gt;
        &lt;param-value&gt;false&lt;/param-value&gt;
    &lt;/context-param&gt;
    &lt;context-param&gt;
        &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;
        &lt;param-value&gt;/WEB-INF/applicationContext.xml&lt;/param-value&gt;
    &lt;/context-param&gt;
    &lt;filter&gt;
        &lt;filter-name&gt;UploadFilter&lt;/filter-name&gt;
        &lt;filter-class&gt;com.sun.webui.jsf.util.UploadFilter&lt;/filter-class&gt;
        &lt;init-param&gt;
            &lt;description&gt;The maximum allowed upload size in bytes.  If this is set to a negative value, there is no maximum.  The default value is 1000000.&lt;/description&gt;
            &lt;param-name&gt;maxSize&lt;/param-name&gt;
            &lt;param-value&gt;1000000&lt;/param-value&gt;
        &lt;/init-param&gt;
        &lt;init-param&gt;
            &lt;description&gt;The size (in bytes) of an uploaded file which, if it is exceeded, will cause the file to be written directly to disk instead of stored in memory.  Files smaller than or equal to this size will be stored in memory.  The default value is 4096.&lt;/description&gt;
            &lt;param-name&gt;sizeThreshold&lt;/param-name&gt;
            &lt;param-value&gt;4096&lt;/param-value&gt;
        &lt;/init-param&gt;
    &lt;/filter&gt;
    &lt;filter-mapping&gt;
        &lt;filter-name&gt;UploadFilter&lt;/filter-name&gt;
        &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
    &lt;/filter-mapping&gt;

    &lt;filter&gt;
        &lt;filter-name&gt;MyFacesExtensionsFilter&lt;/filter-name&gt;
        &lt;filter-class&gt;org.apache.myfaces.webapp.filter.ExtensionsFilter&lt;/filter-class&gt;
    &lt;/filter&gt;

&lt;!-- extension mapping for adding &lt;script/&gt;, &lt;link/&gt;, and other resource tags to JSF-pages  --&gt;
    &lt;filter-mapping&gt;
        &lt;filter-name&gt;MyFacesExtensionsFilter&lt;/filter-name&gt;
    &lt;!-- servlet-name must match the name of your javax.faces.webapp.FacesServlet entry --&gt;
        &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
    &lt;/filter-mapping&gt;

&lt;!-- extension mapping for serving page-independent resources (javascript, stylesheets, images, etc.)  --&gt;
    &lt;filter-mapping&gt;
        &lt;filter-name&gt;MyFacesExtensionsFilter&lt;/filter-name&gt;
        &lt;url-pattern&gt;/faces/myFacesExtensionResource/*&lt;/url-pattern&gt;
    &lt;/filter-mapping&gt;



    &lt;filter&gt;
        &lt;display-name&gt;RichFaces Filter&lt;/display-name&gt;
        &lt;filter-name&gt;richfaces&lt;/filter-name&gt;
        &lt;filter-class&gt;org.ajax4jsf.Filter&lt;/filter-class&gt;
    &lt;/filter&gt;
    &lt;filter-mapping&gt;
        &lt;filter-name&gt;richfaces&lt;/filter-name&gt;
        &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
        &lt;dispatcher&gt;REQUEST&lt;/dispatcher&gt;
        &lt;dispatcher&gt;FORWARD&lt;/dispatcher&gt;
        &lt;dispatcher&gt;INCLUDE&lt;/dispatcher&gt;
    &lt;/filter-mapping&gt;


    &lt;listener&gt;
        &lt;description&gt;Inicia o spring com a aplicacao&lt;/description&gt;
        &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt;
    &lt;/listener&gt;
    &lt;listener&gt;
        &lt;description&gt;Permite o spring controlar as sessoes
e requisicoes dos beans declarados no
applicatonContext.xml
        &lt;/description&gt;
        &lt;listener-class&gt;org.springframework.web.context.request.RequestContextListener&lt;/listener-class&gt;
    &lt;/listener&gt;
    &lt;servlet&gt;
        &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
        &lt;servlet-class&gt;javax.faces.webapp.FacesServlet&lt;/servlet-class&gt;
        &lt;init-param&gt;
            &lt;param-name&gt;javax.faces.LIFECYCLE_ID&lt;/param-name&gt;
            &lt;param-value&gt;com.sun.faces.lifecycle.PARTIAL&lt;/param-value&gt;
        &lt;/init-param&gt;
        &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
    &lt;/servlet&gt;
    &lt;servlet&gt;
        &lt;servlet-name&gt;ExceptionHandlerServlet&lt;/servlet-name&gt;
        &lt;servlet-class&gt;com.sun.errorhandler.ExceptionHandler&lt;/servlet-class&gt;
        &lt;init-param&gt;
            &lt;param-name&gt;errorHost&lt;/param-name&gt;
            &lt;param-value&gt;localhost&lt;/param-value&gt;
        &lt;/init-param&gt;
        &lt;init-param&gt;
            &lt;param-name&gt;errorPort&lt;/param-name&gt;
            &lt;param-value&gt;24444&lt;/param-value&gt;
        &lt;/init-param&gt;
    &lt;/servlet&gt;
    &lt;servlet&gt;
        &lt;servlet-name&gt;ThemeServlet&lt;/servlet-name&gt;
        &lt;servlet-class&gt;com.sun.webui.theme.ThemeServlet&lt;/servlet-class&gt;
    &lt;/servlet&gt;
    &lt;servlet-mapping&gt;
        &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
        &lt;url-pattern&gt;*.faces&lt;/url-pattern&gt;
    &lt;/servlet-mapping&gt;
    &lt;servlet-mapping&gt;
        &lt;servlet-name&gt;ExceptionHandlerServlet&lt;/servlet-name&gt;
        &lt;url-pattern&gt;/error/ExceptionHandler&lt;/url-pattern&gt;
    &lt;/servlet-mapping&gt;
    &lt;servlet-mapping&gt;
        &lt;servlet-name&gt;ThemeServlet&lt;/servlet-name&gt;
        &lt;url-pattern&gt;/theme/*&lt;/url-pattern&gt;
    &lt;/servlet-mapping&gt;
    &lt;session-config&gt;
        &lt;session-timeout&gt;
            30
        &lt;/session-timeout&gt;
    &lt;/session-config&gt;
    &lt;welcome-file-list&gt;
        &lt;welcome-file&gt;forwardToJSF.jsp&lt;/welcome-file&gt;
    &lt;/welcome-file-list&gt;
    &lt;error-page&gt;
        &lt;exception-type&gt;javax.servlet.ServletException&lt;/exception-type&gt;
        &lt;location&gt;/error/ExceptionHandler&lt;/location&gt;
    &lt;/error-page&gt;
    &lt;error-page&gt;
        &lt;exception-type&gt;java.io.IOException&lt;/exception-type&gt;
        &lt;location&gt;/error/ExceptionHandler&lt;/location&gt;
    &lt;/error-page&gt;
    &lt;error-page&gt;
        &lt;exception-type&gt;javax.faces.FacesException&lt;/exception-type&gt;
        &lt;location&gt;/error/ExceptionHandler&lt;/location&gt;
    &lt;/error-page&gt;
    &lt;error-page&gt;
        &lt;exception-type&gt;com.sun.rave.web.ui.appbase.ApplicationException&lt;/exception-type&gt;
        &lt;location&gt;/error/ExceptionHandler&lt;/location&gt;
    &lt;/error-page&gt;
    &lt;jsp-config&gt;
        &lt;jsp-property-group&gt;
            &lt;url-pattern&gt;*.jspf&lt;/url-pattern&gt;
            &lt;is-xml&gt;true&lt;/is-xml&gt;
        &lt;/jsp-property-group&gt;
    &lt;/jsp-config&gt;
&lt;/web-app&gt;

libs do projeto

appbase.jar
cglib-2.2.jar
commons-beanutils.jar
commons-collections-3.1.jar
commons-dbcp-1.2.2.jar
commons-digester-1.7.jar
commons-fileupload-1.1.jar
commons-lang-2.3.jar
commons-logging-api.jar
commons-logging.jar
commons-pool-1.3.jar
commons-validator-1.2.0.jar
dataprovider.jar
errorhandler.jar
jsf-api.jar
jsf-extensions-common-0.1.jar
jsf-extensions-dynamic-faces-0.1.jar
jsf-impl.jar
jsfcl.jar
json-2.jar
jstl.jar
postgresql-8.2-509.jdbc4.jar
richfaces-api-3.2.1.GA.jar
richfaces-impl-3.2.1.GA.jar
richfaces-ui-3.2.1.GA.jar
spring-2.5.jar
sqlx.jar
standard.jar
tomahawk12-1.1.8.jar
webui-jsf-suntheme.jar
webui-jsf.jar

Criado 29 de maio de 2009
Ultima resposta 2 de jun. de 2009
Respostas 13
Participantes 2