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.pswp.cn/news/371419.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/371419.shtml
英文地址,請注明出處:http://en.pswp.cn/news/371419.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

部分視圖跳轉

var album GetDailyDeal(); return PartialView("_DailyDeal", album); 通過NuGet需要添加microsoft.jquery.unobtrusive.ajax 方法一 在BundleConfig.cs 里添加 bundles.Add(new ScriptBundle("~/bundles/jqueryajax").Include("~/Scripts/jquery…

計算機二級目錄設置,word2設置標題格式,生成目錄,奇偶頁設置等等,適用考計算機二級辦公軟件,也適用于畢業論文格式設置...

word2設置標題格式,生成目錄,奇偶頁設置等等,適用考計算機二級辦公軟件,也適用于畢業論文格式設置 這是第2部分word資料 , 跟之前的第一部份word資料合為一份第二題2、在正文前按序插入節&#xff0c;使用“引用”中的目錄功能&#xff0c;生成如下內容&#xff1a;(1) 第1節&a…

JBoss AS 7類加載說明

這是示例章節&#xff0c;摘自Francesco Marchioni編輯的JBoss AS 7 Configuration Deployment and Administration一書&#xff0c;該書正在運行一個名為mastertheboss.com的JBoss門戶。 根據Java EE規范的要求&#xff0c;理想情況下&#xff0c;應用程序服務器應為其部署的應…

打印機 共享 問題

1 用戶提報無法打印&#xff0c;經查被共享打印機無法聯網&#xff0c;先檢查網線是否正常&#xff08;換其他電腦是否能行&#xff09;&#xff0c;再檢查交換機是否正常&#xff0c;經查交換機需要重啟&#xff0c;然后解決問題。 2 被共享機器為32位操作系統&#xff0c;其余…

CoordinatorLayout 中ToolBar遮擋RecyclerView的內容

解決方法:在RecyclerView中添加 app:layout_behavior"string/appbar_scrolling_view_behavior"參考資料:http://stackoverflow.com/questions/32855889/content-behind-coordinatorlayout-appbarlayout 轉載于:https://www.cnblogs.com/niluogege/p/6511094.html

兵團職稱計算機準考證查詢,兵團初級會計準考證打印入口官網

兵團初級會計準考證打印入口官網為財政部會計資格評價中心網(http://kzp.mof.gov.cn)。準考證打印時間在4月16日前公布&#xff0c;考生需要在規定時間登錄財政部會計資格評價中心網(http://kzp.mof.gov.cn)下載并打印準考證。未在上述時限內下載打印準考證的&#xff0c;視作放…

用于集成測試的Maven Cargo插件

在項目生命周期中&#xff0c;非常普遍的需求是設置集成測試。 幸運的是&#xff0c;Maven具有針對此確切方案的內置支持&#xff0c;具有默認構建生命周期的以下階段&#xff08;來自Maven 文檔 &#xff09;&#xff1a; 集成前測試 &#xff1a; 執行集成測試之前所需的操作…

jquery-文檔操作

1.text() 設置或返回元素的text值 <div id"divname">old text</div> $(#divname).text("new text"); 將改變顯示的old為new [1] 參考w3scholl文檔操作 轉載于:https://www.cnblogs.com/hellokittyblog/p/9128397.html

bzoj 4259: 殘缺的字符串

這題好神啊&#xff0c;居然是fft&#xff0c;表示一直在往數據結構上想。 把*當成0&#xff0c;那么兩個串可以匹配當且僅當$$\sum (a[i]-b[i])^2\times a[i]\times b[i]0$$ 我們可以把平方拆開&#xff0c;然后就變成了幾個乘積相加的形式&#xff0c;那就大力翻轉一個串然后…

錄屏時計算機休眠,硬盤錄像機里硬盤提示休眠,什么意思?

休眠&#xff0c;電腦內存中的數據寫入硬盤&#xff0c;關閉電腦。重新啟動的時候重新將數據加載到內存中&#xff0c;恢復休眠前狀態。睡眠&#xff0c;和休眠一個意思&#xff0c;98系統下叫睡眠。xp系統叫休眠。98系統睡眠時&#xff0c;內存數據寫入虛擬內存&#xff0c;xp…

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 的簡化版,因為比較輕量,所以這也是我的選擇; 先說下我這邊的環境:…

GitHub上整理的一些工具

GitHub上整理的一些工具 GitHub 2015-11-19 10:10:47 發布您的評價: 0.0 收藏 5收藏技術站點 Hacker News&#xff1a;非常棒的針對編程的鏈接聚合網站Programming reddit&#xff1a;同上MSDN&#xff1a;微軟相關的官方技術集中地&#xff0c;主要是文檔類infoq&#x…