PrimeFaces 3.4在三天前问世。 除了通常令人敬畏的新组件和更新组件之外,它还包括新的PrimeFaces Push框架。 基于Atmosphere,这为您的应用程序提供了简单的推送机制。 这是在最新的GlassFish 3.1.2.2上配置和运行它的方法。

准备工作

像往常一样,您应该安装一些Java , Maven和GlassFish 。 如果您单手需要它,请尝试使用NetBeans 7.2 。 它是最新的,也是最出色的,并附带了此示例所需的所有内容。 将零件或整体安装到您选择的位置,然后开始创建新的GlassFish域:

asadmin create-domain pf_push

接受默认值并启动您的域

asadmin start-domain pf_push

现在,您必须为您的域启用Comet支持 。 通过使用http:// <host>:4848 / admin ui或以下命令来执行此操作:

asadmin set server-config.network-config.protocols.protocol.http-1.http.comet-support-enabled='true'

这就是您配置域所要做的全部。

Maven项目设置

现在切换到IDE并创建一个新的基于Maven的Java EE 6项目。 将primefaces存储库添加到<repositories>部分,并将primefaces依赖项添加到您的项目<dependencies>部分或项目的pom.xml:

<repository><url>http://repository.primefaces.org/</url><id>primefaces</id><layout>default</layout><name>Repository for library PrimeFaces 3.2</name></repository><dependency><groupId>org.primefaces</groupId><artifactId>primefaces</artifactId><version>3.4</version></dependency>

此外,我们还需要最新的Atmosphere依赖项(此版本与JeanFrancois Arcand相对 )

<dependency><groupId>org.atmosphere</groupId><artifactId>atmosphere-runtime</artifactId><version>1.0.0</version>
</dependency>

它使用的是Log4j,如果需要更多输出,最好还包括相应的配置或使用slf4j将其桥接到JUL。 要稍后做,只需在pom.xml中添加以下内容:

<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.6.6</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-jdk14</artifactId><version>1.6.6</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>log4j-over-slf4j</artifactId><version>1.6.6</version></dependency>

只剩下一件事要做。 PrimePush组件需要注册其Servlet通道。 因此,打开您的web.xml并添加以下内容:

<servlet><servlet-name>Push Servlet</servlet-name><servlet-class>org.primefaces.push.PushServlet</servlet-class>
</servlet>
<servlet-mapping><servlet-name>Push Servlet</servlet-name><url-pattern>/primepush/*</url-pattern>
</servlet-mapping>

就是这样! 上代码!

编码

我将使用PrimeFaces用户指南中提到的示例。 一个非常简单的示例,它具有可以递增的全局计数器。

import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.primefaces.push.PushContext;
import org.primefaces.push.PushContextFactory;/*** Counter is a global counter where each button click increments the count* value and new value is pushed to all subscribers.** @author eiselem*/
@ManagedBean
@SessionScoped
public class GlobalCounterBean implements Serializable {private int count;public int getCount() {return count;}public void setCount(int count) {this.count = count;}public synchronized void increment() {count++;PushContext pushContext = PushContextFactory.getDefault().getPushContext(;pushContext.push('/counter', String.valueOf(count));}
}

PushContext包含整个魔术。 它主要用于发布和计划消息以及管理侦听器等。 从您的方面调用它。 这看起来很简单和熟悉:

<h:form id='counter'>
<h:outputText id='out' value='#{globalCounterBean.count}' styleClass='display' />
<p:commandButton value='Click' actionListener='#{globalCounterBean.increment}' />
</h:form>

除了增加计数器,这基本上不执行任何操作。 因此,您必须添加一些更多的魔术来连接到推式通道。 在表单下方添加以下内容:

<p:socket channel='/counter' >
<p:ajax event='message' update='counter:out' />
</p:socket>

<p:socket />是PrimeFaces组件,用于处理服务器和浏览器之间的连接。 它通过定义通信通道和回调来处理广播。 包含的<p:ajax />组件侦听消息事件并更新表单中的counter字段。 但是,这需要进行额外的服务器往返。 您还可以通过使用一些Java脚本并将onMessage属性绑定到它来更新输出字段,从而简化此操作:

<script type='text/javascript'>
function handleMessage(data) {
$('.display').html(data);
}
</script>
<p:socket onMessage='handleMessage' channel='/counter' />

到此为止。 祝贺您的第一个PrimeFaces Push示例。

祝您编程愉快,别忘了分享!

参考:来自JCG合作伙伴 Markus Eisele在GlassFish 3.1.2.2上的带有大气的PrimeFaces Push在Java企业软件开发博客上。

翻译自: https://www.javacodegeeks.com/2012/09/primefaces-push-with-atmosphere-on.html

PrimeFaces在GlassFish 3.1.2.2上推动大气相关推荐

  1. primefaces_PrimeFaces在GlassFish 3.1.2.2上推动大气

    primefaces PrimeFaces 3.4在三天前发布. 除了通常令人敬畏的新组件和更新组件外,它还包括新的PrimeFaces Push框架. 基于Atmosphere,这为您的应用程序提供 ...

  2. “美云智数APS+SCP” ,从根源上推动企业高效运营

    当前社会已进入商品相对过剩时代,消费者拥有了更多的话语权,人们不再跟风而是追求个性,自由表达需求.靠库存拼销售,与经销商.供应商博弈价格差已成为过去式,现在讲究的是线上线下拼效率和对用户需求的快速响应 ...

  3. html 地球大气,2018年高考模拟地理试题分项版专题02地球上的大气

    9.造成北京市民认为3月17日降雪较1月21日更像初雪日期的关键因素是 A. 冷空气势力强,降温幅度小B. 暖空气势力强,水汽较充足 C. 城区经济发展,热岛效应强D. 大气污染严重,凝结核充足 10 ...

  4. glassfish hk2_使用GlassFish 3.1.2.2和Primefaces 3.4的JDBC领域和基于表单的身份验证

    glassfish hk2 我的博客上最受欢迎的帖子之一是有关JDBC安全领域和带有Primefaces的GlassFish上基于表单的身份验证的简短教程. 在收到有关它不再适用于最新的GlassFi ...

  5. 使用GlassFish 3.1.2.2和Primefaces 3.4的JDBC领域和基于表单的身份验证

    我的博客上最受欢迎的帖子之一是有关JDBC安全领域和带有Primefaces的GlassFish上基于表单的身份验证的简短教程. 在收到有关它不再适用于最新的GlassFish 3.1.2.2的评论后 ...

  6. primefaces_使用WildFly 8.2.0.Final,Primefaces 5.1和MySQL 5的JDBC领域和基于表单的身份验证...

    primefaces 我会不时查看我博客上最受欢迎的内容,并尝试最好地满足您的需求. 因此,阅读我的博客是其他读者推动内容的一种方式. 另一种方法是通过评论或电子邮件与我联系. 今天,我将使用Prim ...

  7. glassfish发布应用_WildFly 8与GlassFish 4 –选择哪个应用服务器

    glassfish发布应用 自从我上一个博客以来已经有一段时间了. 我显然忙于其他事情,包括我的主要工作. 在对应用服务器的正确选择提出更多疑问之后,是时候再次讨论这个话题并分享我的想法. 该博客上最 ...

  8. 监视和管理GlassFish 3的多种方法

    GlassFish 3支持多种监视和管理方法. 在本文中,我将简要介绍GlassFish提供的管理,监视和管理方法. GlassFish管理控制台 GlassFish基于Web的管理控制台GUI可能是 ...

  9. NVIDIA GPUs上深度学习推荐模型的优化

    NVIDIA GPUs上深度学习推荐模型的优化 Optimizing the Deep Learning Recommendation Model on NVIDIA GPUs 推荐系统帮助人在成倍增 ...

最新文章

  1. 项目中的加减法--《最后期限》读书笔记(1)
  2. kail利用msf工具对MS12-020漏洞进行渗透测试
  3. vue积累——另一种走马灯
  4. 如何实现HashMap的顺序存储
  5. 网页抢东西插件_强烈推荐一款Chrome插件DownFaster 一键下载网页资源
  6. Linux修改history存储的最大记录数
  7. python读写csv与数据库性能_使用python将csv文件写入SQL Server数据库
  8. angularjs ng-include
  9. TensorFlow Session 中关于 GPU 的配置项解析 ——转自 慢慢学TensorFlow 微信公众号
  10. 途志:新主播让自己的直播热起来有什么技巧?
  11. github 开源android项目
  12. Bootstrap栅栏布局里col-xs-*、col-sm-*、col-md-*、col-lg-*之间的区别及使用方法
  13. SAN存储和服务器虚拟化安装方案,基于SAN存储架构的x86服务器虚拟化测试方案.pdf...
  14. JAVA基础 - 数组中有没有length()这个方法?String中有没有 length()这个方法?
  15. CSS进阶之关于网格布局(Grid) 你了解哪些
  16. android beam功能,让NFC更实用 Android Beam评测
  17. 安全认证系列之-(三)成为数字认证机构CA
  18. 图文并茂的PCA教程(Principal Component Analysis,即主成分分析)
  19. 白话机器学习-Attention
  20. Excel 2010 SQL应用104 域聚合函数之DMIN,DMAX

热门文章

  1. 段描述符表(GDT+LDT)的有感
  2. 鸡肉部位英文对照_鸡肉和鸡蛋–测试前解决Spring属性
  3. java gc cms_Java垃圾收集器:G1GC何时将CMS强制退出?
  4. activemq消息持久化_ActiveMQ 5.x中的消息持久性
  5. jsf和jsp_带有JSF,Servlet和CDI的DynamicReports和JasperReports
  6. 什么是openstack_您在OpenStack Summit 2016上错过了什么
  7. lagom的微服务框架_微服务有麻烦吗? Lagom在这里为您提供帮助。 试试吧!
  8. 装饰器模式java_Java 8的装饰器模式
  9. 从fork-join /线程池调用的Singelton bean中的访问spring请求范围缓存
  10. Java恶意序列化背后的历史和动机