Primefaces 推和狂飞
有没有人能让wildfly的undertow与Primefaces push 2.0一起工作?Wildfly的原生websockets(jee7)本身就非常有效。我不知道如何与primefaces整合。任何示例都会有帮助。我在WildFly 8.1.0.Final上使用了以下功能: pom.xml:Primefaces 推和狂飞,primefaces,websocket,push,wildfly,Primefaces,Websocket,Push,Wildfly,有没有人能让wildfly的undertow与Primefaces push 2.0一起工作?Wildfly的原生websockets(jee7)本身就非常有效。我不知道如何与primefaces整合。任何示例都会有帮助。我在WildFly 8.1.0.Final上使用了以下功能: pom.xml: <dependency> <groupId>org.atmosphere</groupId> <artifactId>atmosphe
<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>
应修改javascript部分以满足您的需求。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>
}
爪哇
更多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));
}
}
感谢您的回复,我已经尝试过了,我得到了:org.atmosphere.cpr.DefaultAnnotationProcessor无法使用PM 5.1和atmosphere 2.2.0将其转换为org.atmosphere.cpr.AnnotationProcessor有什么建议吗?当我尝试时,会出现如下严重错误:web应用程序中的Servlet[Push Servlet]抛出加载()异常java.lang.ClassNotFoundException:org.atmosphere.inject.PathParamInterspector
@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;
}
<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>
<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>
<p:socketonMessage="handleMessage" channel="/counter" />
function handleMessage(data) {
console.log(data);
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;
}
}
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));
}
}