PrimeFaces在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上推动大气相关推荐
- primefaces_PrimeFaces在GlassFish 3.1.2.2上推动大气
primefaces PrimeFaces 3.4在三天前发布. 除了通常令人敬畏的新组件和更新组件外,它还包括新的PrimeFaces Push框架. 基于Atmosphere,这为您的应用程序提供 ...
- “美云智数APS+SCP” ,从根源上推动企业高效运营
当前社会已进入商品相对过剩时代,消费者拥有了更多的话语权,人们不再跟风而是追求个性,自由表达需求.靠库存拼销售,与经销商.供应商博弈价格差已成为过去式,现在讲究的是线上线下拼效率和对用户需求的快速响应 ...
- html 地球大气,2018年高考模拟地理试题分项版专题02地球上的大气
9.造成北京市民认为3月17日降雪较1月21日更像初雪日期的关键因素是 A. 冷空气势力强,降温幅度小B. 暖空气势力强,水汽较充足 C. 城区经济发展,热岛效应强D. 大气污染严重,凝结核充足 10 ...
- glassfish hk2_使用GlassFish 3.1.2.2和Primefaces 3.4的JDBC领域和基于表单的身份验证
glassfish hk2 我的博客上最受欢迎的帖子之一是有关JDBC安全领域和带有Primefaces的GlassFish上基于表单的身份验证的简短教程. 在收到有关它不再适用于最新的GlassFi ...
- 使用GlassFish 3.1.2.2和Primefaces 3.4的JDBC领域和基于表单的身份验证
我的博客上最受欢迎的帖子之一是有关JDBC安全领域和带有Primefaces的GlassFish上基于表单的身份验证的简短教程. 在收到有关它不再适用于最新的GlassFish 3.1.2.2的评论后 ...
- primefaces_使用WildFly 8.2.0.Final,Primefaces 5.1和MySQL 5的JDBC领域和基于表单的身份验证...
primefaces 我会不时查看我博客上最受欢迎的内容,并尝试最好地满足您的需求. 因此,阅读我的博客是其他读者推动内容的一种方式. 另一种方法是通过评论或电子邮件与我联系. 今天,我将使用Prim ...
- glassfish发布应用_WildFly 8与GlassFish 4 –选择哪个应用服务器
glassfish发布应用 自从我上一个博客以来已经有一段时间了. 我显然忙于其他事情,包括我的主要工作. 在对应用服务器的正确选择提出更多疑问之后,是时候再次讨论这个话题并分享我的想法. 该博客上最 ...
- 监视和管理GlassFish 3的多种方法
GlassFish 3支持多种监视和管理方法. 在本文中,我将简要介绍GlassFish提供的管理,监视和管理方法. GlassFish管理控制台 GlassFish基于Web的管理控制台GUI可能是 ...
- NVIDIA GPUs上深度学习推荐模型的优化
NVIDIA GPUs上深度学习推荐模型的优化 Optimizing the Deep Learning Recommendation Model on NVIDIA GPUs 推荐系统帮助人在成倍增 ...
最新文章
- 项目中的加减法--《最后期限》读书笔记(1)
- kail利用msf工具对MS12-020漏洞进行渗透测试
- vue积累——另一种走马灯
- 如何实现HashMap的顺序存储
- 网页抢东西插件_强烈推荐一款Chrome插件DownFaster 一键下载网页资源
- Linux修改history存储的最大记录数
- python读写csv与数据库性能_使用python将csv文件写入SQL Server数据库
- angularjs ng-include
- TensorFlow Session 中关于 GPU 的配置项解析 ——转自 慢慢学TensorFlow 微信公众号
- 途志:新主播让自己的直播热起来有什么技巧?
- github 开源android项目
- Bootstrap栅栏布局里col-xs-*、col-sm-*、col-md-*、col-lg-*之间的区别及使用方法
- SAN存储和服务器虚拟化安装方案,基于SAN存储架构的x86服务器虚拟化测试方案.pdf...
- JAVA基础 - 数组中有没有length()这个方法?String中有没有 length()这个方法?
- CSS进阶之关于网格布局(Grid) 你了解哪些
- android beam功能,让NFC更实用 Android Beam评测
- 安全认证系列之-(三)成为数字认证机构CA
- 图文并茂的PCA教程(Principal Component Analysis,即主成分分析)
- 白话机器学习-Attention
- Excel 2010 SQL应用104 域聚合函数之DMIN,DMAX
热门文章
- 段描述符表(GDT+LDT)的有感
- 鸡肉部位英文对照_鸡肉和鸡蛋–测试前解决Spring属性
- java gc cms_Java垃圾收集器:G1GC何时将CMS强制退出?
- activemq消息持久化_ActiveMQ 5.x中的消息持久性
- jsf和jsp_带有JSF,Servlet和CDI的DynamicReports和JasperReports
- 什么是openstack_您在OpenStack Summit 2016上错过了什么
- lagom的微服务框架_微服务有麻烦吗? Lagom在这里为您提供帮助。 试试吧!
- 装饰器模式java_Java 8的装饰器模式
- 从fork-join /线程池调用的Singelton bean中的访问spring请求范围缓存
- Java恶意序列化背后的历史和动机