Problem with a4j:push CDI example from showcase (RF 4.2.0)
smoking81 Feb 27, 2013 3:15 AMHi all!
I am trying to let the RF's a4j:push example from the showcase work on my machine. The application is deployed correctly and I could debug it until the CDI event gets fired, but I cannot see any update in the consumer. Can you please help me to understand what's going wrong with my consumer (or at least to debug it)?
Thanks a lot for your help!
Producer JSF:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<h:form>
<h:panelGrid columns="4">
<h:outputLabel value="Message:" />
<h:inputText id="messageInput" styleClass="message" value="#{pushCdiBean.message}">
</h:inputText>
<a4j:commandButton value="Send" action="#{pushCdiBean.sendMessage}"
execute="@form" render="messageInput" />
<rich:messages for="messageInput" />
</h:panelGrid>
</h:form>
</ui:composition>
Consumer JSF:
<?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">
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<h:form>
<h:panelGrid columns="3">
<a4j:push address="pushCdi"
ondataavailable="jQuery('<li />').prependTo('#messages').text(event.rf.data)" />
<ul id="messages" />
</h:panelGrid>
</h:form>
</ui:composition>
Bean:
import java.io.Serializable;
import javax.enterprise.context.RequestScoped;
import javax.enterprise.event.Event;
import javax.inject.Inject;
import javax.inject.Named;
import org.richfaces.cdi.push.Push;
/**
* @author <a href="http://community.jboss.org/people/lfryc">Lukas Fryc</a>
*/
@Named
@RequestScoped
public class PushCdiBean implements Serializable{
private static final long serialVersionUID = 1L;
private String message;
@Inject
@Push(topic = "pushCdi")
Event<String> pushEvent;
/**
* Sends message.
*
* @param message
* to send
*/
public void sendMessage() {
this.pushEvent.fire(this.message);
this.message = "";
}
public String getMessage() {
return this.message;
}
public void setMessage(String message) {
this.message = message;
}
}
web.xml:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" 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_3_0.xsd"> <context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Development</param-value> </context-param> <context-param> <param-name>org.atmosphere.useBlocking</param-name> <param-value>true</param-value> </context-param> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>Push Servlet</servlet-name> <servlet-class>org.richfaces.webapp.PushServlet</servlet-class> <load-on-startup>1</load-on-startup> <async-supported>true</async-supported> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>/faces/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.xhtml</url-pattern> </servlet-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>faces/index.xhtml</welcome-file> </welcome-file-list> </web-app>
pom.xml:
<dependencyManagement> <dependencies> <dependency> <groupId>org.richfaces</groupId> <artifactId>richfaces-bom</artifactId> <version>4.2.0.Final</version> <scope>import</scope> <type>pom</type> </dependency> .... </dependencyManagement> <dependencies> ... <dependency> <groupId>org.richfaces.core</groupId> <artifactId>richfaces-core-api</artifactId> </dependency> <dependency> <groupId>org.richfaces.core</groupId> <artifactId>richfaces-core-impl</artifactId> </dependency> <dependency> <groupId>org.richfaces.ui</groupId> <artifactId>richfaces-components-api</artifactId> </dependency> <dependency> <groupId>org.richfaces.ui</groupId> <artifactId>richfaces-components-ui</artifactId> </dependency> <dependency> <groupId>org.atmosphere</groupId> <artifactId>atmosphere-runtime</artifactId> </dependency> </dependencies>