primefaces

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 Atmosphere on Atmosphere在 Java软件企业博客上发表。

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

primefaces

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

  1. PrimeFaces在GlassFish 3.1.2.2上推动大气

    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发布应用_WildFly 8与GlassFish 4 –选择哪个应用服务器

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

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

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

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

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

  7. WIAC上,华为展区都有点儿啥?

    戳蓝字"CSDN云计算"关注我们哦!    谈及计算产业的变迁,我们了解到其先后经历了大型计算机.小型机/x86服务器阶段,并同时开创了敏捷.创新.体验好.省成本的Cloud 1. ...

  8. 引流三十六招第十四招:蹭热门工具流量,日引上千精准粉

    很多人认为懒惰的人不好,但是准哥却认为,懒惰的人在一定程度上推动了社会发展与创新.从古时候开始,因为懒得走路,出现了车马:懒得做饭,出现了酒楼:到现在懒得出门购物,出现了淘宝京东:懒得出门吃饭出现了美 ...

  9. 到月宫上挖土-嫦娥五号背后的航天系统工程

    由中国空间技术研究院研制的嫦娥五号探测器圆满完成了采集月球样本并返回地球的任务,这标志着中国月球探测工程"三步走"战略目标全面实现.嫦娥五号探测器是中国探月工程三期发射的月球探测器 ...

最新文章

  1. 作业要求 20181127-1 附加作业 软件工程原则的应用实例分析
  2. hdu1443 Joseph(约瑟夫环)
  3. SAP云采购解决方案入华在即
  4. 使用Linux命令来发送信息
  5. error C3872: '0x3000': this character is not allowed in an identifier 解决方法
  6. 查看swintransformer的网络结构
  7. 【python 图像处理】skimage的子模块介绍
  8. 2020 .NET 开发者峰会顺利在苏州落幕,相关数据很喜人以及线上直播回看汇总
  9. 使用C语言扩展Python(四)
  10. 62.不同的路径(力扣leetcode) 博主可答疑该问题
  11. 我要自学网access教程百度云_我要自学网教程资源汇总
  12. java实现一个录像大师
  13. 量子世界的测不准定律
  14. 如何在计算机中增加字体,电脑如何添加字体?WinXP系统新增个性字体的方法
  15. office 中墨迹书写工具_在word2019或ppt2019中如何调出墨迹书写工具
  16. QNX Hypervisor —— 虚拟设备
  17. atthesametime啥意思_atthesametime
  18. vegan稀释曲线 基因丰度_基于OTU的稀释曲线(Rarefaction curves) + ggplot2
  19. 学习笔记三:MLP基本原理、矩阵求导术推反向传播、激活函数、Xavier
  20. PLA,FPGA 简介

热门文章

  1. 常用数据库连接池 (DBCP、c3p0、Druid) 配置说明
  2. HikariCP-史上最快速的连接池
  3. springboot从控制器请求至页面时js失效的解决方法
  4. ssh(Spring+Spring mvc+hibernate)——BaseDaoImpl.java
  5. 最全三大框架整合(使用映射)——DeptAction.java
  6. 2017蓝桥杯省赛---java---B---2(纸牌三角形)
  7. 16-就业课(2.1)-应用容器-Docker
  8. 毕业设计word 表格标题 图表标题
  9. 亚信科技笔试面试2019届
  10. 脚本可以放在html外,关于把script脚本放在html结束标签外的运行结果???