Bonjour, je fais mes premiers pas en jsf et j'essais d'executer une page jsp prise sur le net

push.xhtml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html">
 
    <ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:rich="http://richfaces.org/rich">
 
    <h:form>
        <a4j:push interval="1000" eventProducer="#{push.addListener}"
            reRender="push,out" enabled="#{push.enabled}" id="push"/>
        <rich:panel>
        <f:facet name="header">
            <h:outputText value="Push Example"/>
        </f:facet>
        <h:panelGrid columns="1" id="out">
            <h:outputText rendered="#{!push.enabled}" value="Press Start to run push example"/>
            <h:panelGroup rendered="#{push.enabled}">
                <h:outputText value="Generated UUID:"/>
                <h:outputText value="#{push.uuid}"/>
            </h:panelGroup>
            <h:panelGroup>
                <a4j:commandButton value="Start" action="#{push.start}"
                    ajaxSingle="true" rendered="#{!push.enabled}" reRender="push, out"/>
                <a4j:commandButton value="Stop" action="#{push.stop}"
                    ajaxSingle="true" rendered="#{push.enabled}" reRender="push, out"/>
            </h:panelGroup>
        </h:panelGrid>
        </rich:panel>
    </h:form>
</ui:composition>
 
 
</html>
PushBean.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
package Beans;
 
 
/**
 *
 * @author laplace
 */
import java.util.Date;
import java.util.EventListener;
import java.util.EventObject;
import java.util.UUID;
 
import org.ajax4jsf.event.PushEventListener;
 
/**
 * @author Ilya Shaikovsky
 *
 */
 
public class PushBean implements Runnable {
 
    private String uuid = "";
 
    private boolean enabled = false;
 
    private Date startDate;
 
    PushEventListener listener;
 
    private Thread thread;
 
    // private int eventsFired counter;
 
    public void addListener(EventListener listener) {
        synchronized (listener) {
            if (this.listener != listener) {
                this.listener = (PushEventListener) listener;
            }
        }
    }
 
    public void run() {
        while (thread != null) {
            try {
                if (((new Date()).getTime()-startDate.getTime())>=60000) {
                    stop();
                }
                uuid = UUID.randomUUID().toString();
                listener.onEvent(new EventObject(this));
                Thread.sleep(10000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                // e.printStackTrace();
            }
        }
    }
 
    public String getUuid() {
        return uuid;
    }
 
    public void start() {
        if (thread == null) {
            thread = new Thread(this);
            thread.setDaemon(true);
            thread.start();
            setStartDate(new Date());
            setEnabled(true);
        }
    }
 
    public void stop() {
        if (thread != null) {
            //thread.stop();
            setStartDate(null);
            setEnabled(false);
            thread = null;
        }
    }
 
    public Thread getThread() {
        return thread;
    }
 
    public boolean isEnabled() {
        return enabled;
    }
 
    public void setEnabled(boolean enabled) {
        this.enabled = enabled;
    }
 
    public Date getStartDate() {
        return startDate;
    }
 
    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }
}
et la config dans le face-config est
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
<managed-bean>
     <managed-bean-name>push</managed-bean-name>
     <managed-bean-class>Beans.PushBean</managed-bean-class>
     <managed-bean-scope>session</managed-bean-scope>
  </managed-bean>
Quand j'execute rien ne s'affiche, j'ai une page blanche alors que je devrais avoir quelque chose de (voir le lien)
http://ludvigsens.net/richfaces-3.3....push&tab=usage