PrimeFaces在GlassFish 3.1.2.2上推动大气

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/371419.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JBoss AS 7类加载说明

这是示例章节&#xff0c;摘自Francesco Marchioni编辑的JBoss AS 7 Configuration Deployment and Administration一书&#xff0c;该书正在运行一个名为mastertheboss.com的JBoss门户。 根据Java EE规范的要求&#xff0c;理想情况下&#xff0c;应用程序服务器应为其部署的应…

兵团职称计算机准考证查询,兵团初级会计准考证打印入口官网

兵团初级会计准考证打印入口官网为财政部会计资格评价中心网(http://kzp.mof.gov.cn)。准考证打印时间在4月16日前公布&#xff0c;考生需要在规定时间登录财政部会计资格评价中心网(http://kzp.mof.gov.cn)下载并打印准考证。未在上述时限内下载打印准考证的&#xff0c;视作放…

MySQL数据库的基本操作

-- 连接mysql 数据库(前提是配置好MySQL数据库的环境变量&#xff0c;加入path)mysql -uroot -p -- 设置文本的输入输出编码&#xff1a;cmd 使用的是gbk&#xff0c;不然显示乱码set names gbk; -- 创建数据库create database mydatabase charset utf8; -- 创建用户 user001cr…

使用NoSQL实施实体服务–第5部分:使用云提高自治性

在先前的文章中&#xff0c;我讨论了如何通过结合使用Java Web Services &#xff0c; Java EE和CouchDB NoSQL数据库为产品构建SOA“实体”服务。 在本系列的最后一篇文章中&#xff0c;我将利用我已经创建的一些技术资产&#xff0c;并使用一些流行的SOA模式实现一些新的用户…

乐高计算机发展史教程,【乐高产品发展史特别篇】乐高恐龙发展史

—— 写在前面 ——2018年6月22日&#xff0c;《侏罗纪世界2&#xff1a;失落王国》全球上映&#xff1b;4月16日&#xff0c;乐高同名系列套装全球发售。恐龙是一个伴随了乐高产品二十余年的主题&#xff0c;其实在一年以前就有这样一个计划完成乐高恐龙发展史的相关内容&…

mvc 连接数据库但单复值得问题

1. The model backing the ‘MusicStoreDBContext‘ context has changed since the database was created. Consider using Code First Migrations to update the database Movie这个表是用来记录Model的版本号的&#xff0c;你每次重新生成一次数据库它就会重新给ModelHash…

Mybatis处理表关联(懒加载)

1.关系型数据库&#xff1f; 数据库中的表对象之间是有关系的。 一对一&#xff0c;一对多&#xff0c;多对多。 ORM映射。数据库表映射到实体对象。 实体与实体之间是有关系的。 一对多的关系。 比如商品分类表与商品表之间的关系&#xff0c;就是一对多的关系。 入库主表与入…

Spring–设计领域模型和服务层

我们将为时间表管理构建应用程序。 因此&#xff0c;让我们首先考虑一些用例和实体。 让我用几个项目符号写它们&#xff1a; 任务由经理分配给员工。 一项任务可以分配给许多员工。 员工将他在某些任务上工作的小时数填满至系统。 经理/员工查看时间表上的报告&#xff08;时…

如何把很多照片拼成一张照片_一张现场照片引发的中韩之争

来源&#xff1a;渤海新水手聊船专栏前几天&#xff0c;微信群里(造船质量技术高级交流群)一位网友发了一张韩国船厂的现场照片&#xff0c;没想到瞬间引发全群几十位网友的热烈讨论&#xff0c;中韩之争就此上演&#xff01;照片反映出的是国内船厂很难做到的部分——分段预装…

计算机文档设置,电脑这样设置快速的共享文件、分享文档!

原标题&#xff1a;电脑这样设置快速的共享文件、分享文档&#xff01;在日常办公的时候&#xff0c;有时需要共同使用一些文件或者文档或者一些视频资料。那么要怎么方便的使用这些共同的资源呢&#xff1f;当然这时大家可能会说可以用QQ、微信传给对方不就可以了。但是如果文…

关于vue 框架与后台框架的混合使用的尝试

这几天我在研究前台框架和后台框架融合的问题,进行了一些尝试; 我前台选择的是 vue,当然也可以选择 react 等其他 mvvm 框架,不过 vue 对于我来说是最熟悉的; 后台话,我选择的是 php 的 lumen 框架,他是laravel 的简化版,因为比较轻量,所以这也是我的选择; 先说下我这边的环境:…

服务器 raid 1t硬盘吗,用了4块1T的硬盘,做了raid5,显示有2.7T,但是分区做完系统后,有700多G不能动...

满意答案ouourpt892013.11.14采纳率&#xff1a;46% 等级&#xff1a;12已帮助&#xff1a;13583人出现这种情况是由于创建的硬盘使用的是基本磁盘(MBR)格式&#xff0c;因受MBR磁盘格式技术的限制&#xff0c;MBR磁盘只支持2TB的磁盘容量&#xff0c;所以出现了你所说的情况…

vi编辑器服务器维护,vi编辑器有哪几种工作模式及如何转换_网站服务器运行维护,vi编辑器,工作模式...

整理分享一些 Linux思维导图(值得收藏)_网站服务器运行维护本篇文章整理分享了一些 Linux思维导图(值得收藏)。有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对大家有所帮助。vi编辑器有三种基本的工作模式&#xff0c;分别是&#xff1a;指令行模式、…

(八)cmockery中的calculator和run_tests函数的注释代码

所分析的calculator.c和calculator_test.c文件位于 工程中的 cmockery/src/example/ 目录下&#xff0c;是一个相对而言比较全面的样例程序&#xff0c;用到了cmockery项目中的大多数单元测试方法。基本上涵盖了之前所有的样例程序中的用法&#xff0c;还有两组测试是database操…

第一章魔兽窗口

开始显示第一个窗体 用户直接点登陆的话就会提示用户名不能为空密码不能为空 没有账号的话只能先注册&#xff0c;点击蓝色摁钮进入下一个窗体 这里有判断是否为空&#xff0c;注册成功后利用窗体传值&#xff0c;并且打开第一个窗口 把注册的用户名和密码写上去就可以的登陆到…

Apache Digester示例–轻松配置

解决问题–硬编码&#xff0c;需要为您的应用程序创建自定义配置&#xff0c;例如struts配置文件&#xff0c;以仅通过更改文件来改变应用程序行为。 Apache Digester可以轻松为您完成此任务。 使用Apache Digester相当容易将XML文档转换为相应的Java bean对象层次结构。 请参阅…

Java FlameGraph 火焰图

上周一个偶然的机会听同事提到了Java FlameGraph&#xff0c;刚实验了一下&#xff0c;效果非常好。 一、什么是FlameGraph 直接看图说话。FlameGraph 是 SVG格式&#xff0c;矢量图&#xff0c;可以随意扩大缩小&#xff0c;看不清的信息可以放大看。图中&#xff0c;各种红橙…

烟草局计算机笔试,2020年广西南宁烟草局什么时候笔试?

最近广西烟草局各地市社招通知频发&#xff0c;南宁烟草局报名截止至今都无任何消息&#xff0c;根据往年的考情&#xff0c;通知近期很大可能会发布&#xff0c;将于6月底完成笔面!你备考好了吗&#xff1f;今天广西中公国企小编来给大家说一下南宁烟草局社招的笔试内容及备考…

JAVA Swing 组件演示***

下面是Swing组件的演示&#xff1a; package a_swing;import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import java.awt.Cursor; import java.awt.Dimension; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.…

centos 获取硬件序列号_如何在 Linux 上查找硬件规格

在 Linux 系统上有许多工具可用于查找硬件规格。-- Sk&#xff08;作者&#xff09;在 Linux 系统上有许多工具可用于查找硬件规格。在这里&#xff0c;我列出了四种最常用的工具&#xff0c;可以获取 Linux 系统的几乎所有硬件&#xff08;和软件&#xff09;细节。好在是这些…