PrimeFaces在GlassFish 3.1.2.2上推动大气
準(zhǔn)備工作
像往常一樣,您應(yīng)該安裝一些Java , Maven和GlassFish 。 如果您單手需要它,請(qǐng)嘗試使用NetBeans 7.2 。 它是最新的,也是最出色的,并附帶了此示例所需的所有內(nèi)容。 將零件或整體安裝到您選擇的位置,然后開始創(chuàng)建新的GlassFish域:
asadmin create-domain pf_push接受默認(rèn)值并啟動(dòng)您的域
asadmin start-domain pf_push現(xiàn)在,您必須為您的域啟用Comet支持 。 通過使用http:// <host>:4848 / admin ui或以下命令來執(zhí)行此操作:
asadmin set server-config.network-config.protocols.protocol.http-1.http.comet-support-enabled='true'這就是您配置域所要做的全部。
Maven項(xiàng)目設(shè)置
現(xiàn)在切換到IDE并創(chuàng)建一個(gè)新的基于Maven的Java EE 6項(xiàng)目。 將primefaces存儲(chǔ)庫(kù)添加到<repositories>部分,并將primefaces依賴項(xiàng)添加到您的項(xiàng)目<dependencies>部分或項(xiàng)目的pom.xml:
此外,我們還需要最新的Atmosphere依賴項(xiàng)(此版本與JeanFrancois Arcand相對(duì) )
<dependency><groupId>org.atmosphere</groupId><artifactId>atmosphere-runtime</artifactId><version>1.0.0</version> </dependency>它使用的是Log4j,如果需要更多輸出,最好還包括相應(yīng)的配置或使用slf4j將其橋接到JUL。 要稍后做,只需在pom.xml中添加以下內(nèi)容:
<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組件需要注冊(cè)其Servlet通道。 因此,打開您的web.xml并添加以下內(nèi)容:
<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用戶指南中提到的示例。 一個(gè)非常簡(jiǎn)單的示例,它具有可以遞增的全局計(jì)數(shù)器。
PushContext包含整個(gè)魔術(shù)。 它主要用于發(fā)布和計(jì)劃消息以及管理偵聽器等。 從您的方面調(diào)用它。 這看起來很簡(jiǎn)單和熟悉:
<h:form id='counter'> <h:outputText id='out' value='#{globalCounterBean.count}' styleClass='display' /> <p:commandButton value='Click' actionListener='#{globalCounterBean.increment}' /> </h:form>除了增加計(jì)數(shù)器,這基本上不執(zhí)行任何操作。 因此,您必須添加一些更多的魔術(shù)來連接到推式通道。 在表單下方添加以下內(nèi)容:
<p:socket channel='/counter' > <p:ajax event='message' update='counter:out' /> </p:socket><p:socket />是PrimeFaces組件,用于處理服務(wù)器和瀏覽器之間的連接。 它通過定義通信通道和回調(diào)來處理廣播。 包含的<p:ajax />組件偵聽消息事件并更新表單中的counter字段。 但是,這需要進(jìn)行額外的服務(wù)器往返。 您還可以通過使用一些Java腳本并將onMessage屬性綁定到它來更新輸出字段,從而簡(jiǎn)化此操作:
<script type='text/javascript'> function handleMessage(data) { $('.display').html(data); } </script><p:socket onMessage='handleMessage' channel='/counter' />到此為止。 祝賀您的第一個(gè)PrimeFaces Push示例。
祝您編程愉快,別忘了分享!
參考:來自JCG合作伙伴 Markus Eisele在GlassFish 3.1.2.2上的帶有大氣的PrimeFaces Push在Java企業(yè)軟件開發(fā)博客上。
翻譯自: https://www.javacodegeeks.com/2012/09/primefaces-push-with-atmosphere-on.html
總結(jié)
以上是生活随笔為你收集整理的PrimeFaces在GlassFish 3.1.2.2上推动大气的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring测试支持和上下文缓存
- 下一篇: JBoss AS 7类加载说明