Guide Textures and Wildfly

Has anyone managed to get wildfly to work with Primefaces push 2.0? Wildfly native websockets (jee7) works fine on it. I am not sure how to integrate with the primary. Any examples would be helpful.

+4
source share
2 answers

I got this work on WildFly 8.1.0.Final with:

pom.xml:

<dependency>
    <groupId>org.atmosphere</groupId>
    <artifactId>atmosphere-runtime</artifactId>
    <version>2.1.6</version>    
</dependency>
<dependency>
    <groupId>org.primefaces</groupId>
    <artifactId>primefaces</artifactId>
    <version>5.0</version>
</dependency>

web.xml:

<servlet>
    <servlet-name>PrimePushServlet</servlet-name>
    <servlet-class>org.primefaces.push.PushServlet</servlet-class>
    <init-param>
        <param-name>org.atmosphere.cpr.broadcasterCacheClass</param-name>
        <param-value>org.atmosphere.cache.UUIDBroadcasterCache</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
    <async-supported>true</async-supported>
</servlet>
<servlet-mapping>
    <servlet-name>PrimePushServlet</servlet-name>
    <url-pattern>/primepush/*</url-pattern>
</servlet-mapping>

in .xhtml:

<p:socket onMessage="handleMessage" channel="/#{request.remoteUser}" />
<script type="text/javascript">
    function handleMessage(facesmessage) {
        var msgdetail = $.base64.decode(facesmessage.detail);
        facesmessage.detail = msgdetail;
        PF('growlWidget').show([ facesmessage ]);
    }
</script>

My resource:

@PushEndpoint("/{user}")
@Singleton
public class UserResource {

@PathParam("user")
private String user;

@OnMessage(encoders = { JSONEncoder.class }, decoders = { JSONDecoder.class })
public FacesMessage onMessage(FacesMessage message) {
    return message;
}

The javascript part should be changed according to your requirement.

+1
source

Wildfly 9.0.2

pom.xml

            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>2.4</version>
            </dependency>
            <dependency>
                <groupId>org.atmosphere</groupId>
                <artifactId>atmosphere-runtime</artifactId>
                <version>2.3.5</version>
            </dependency>
            <dependency>
                <groupId>org.primefaces</groupId>
                <artifactId>primefaces</artifactId>
                <version>5.2</version>
            </dependency>

web.xml

<servlet>
    <servlet-name>PrimePushServlet</servlet-name>
    <servlet-class>org.primefaces.push.PushServlet</servlet-class>
    <init-param>
        <param-name>org.atmosphere.cpr.broadcasterCacheClass</param-name>
        <param-value>org.atmosphere.cache.UUIDBroadcasterCache</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
    <async-supported>true</async-supported>
</servlet>
<servlet-mapping>
   <servlet-name>PrimePushServlet</servlet-name>
   <url-pattern>/primepush/*</url-pattern>

XHTML

<p:socketonMessage="handleMessage" channel="/counter" />

Js

function handleMessage(data) {
    console.log(data);

}

Java

import org.primefaces.push.annotation.OnMessage;
import org.primefaces.push.annotation.PushEndpoint;
import org.primefaces.push.impl.JSONEncoder;

@PushEndpoint("/counter")
public class MessageResources {

@OnMessage(encoders = {JSONEncoder.class})
public String onMessage(String count) {
    return count;
}
}

More java

    import java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import org.primefaces.push.EventBus;
import org.primefaces.push.EventBusFactory;

@ManagedBean
@SessionScoped
public class GlobalMessageControler implements Serializable {

    private static final long serialVersionUID = -4507223739929042795L;
    private volatile int count;

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public void increment() {
        count++;

        EventBus eventBus = EventBusFactory.getDefault().eventBus();
        eventBus.publish("/counter", String.valueOf(count));
    }
}
+1
source

Source: https://habr.com/ru/post/1546711/


All Articles