weblogic运行项目_在WebLogic 12c上运行RichFaces
weblogic運(yùn)行項(xiàng)目
我最初以為我可以在幾個(gè)月前寫這篇文章。 但是我最終被不一樣的事情所淹沒。 其中之一是,它無法像我在4.0版本中那樣簡(jiǎn)單地啟動(dòng)RichFaces展示柜。 有了所有的JMS magic和不同的提供程序檢查,這已經(jīng)成為簡(jiǎn)單構(gòu)建和部署它的挑戰(zhàn)。無論如何,我愿意嘗試一下,然后開始。 如果您想開始使用任何JBoss技術(shù),最好先檢查一下JBoss Developer Framework 。 這是各種示例和快速入門的不錯(cuò)集合,可幫助您開始使用Java EE及其技術(shù)。 RichFaces-Validation示例就是其中之一,該示例演示了如何一起使用JSF 2.0,RichFaces 4.2,CDI 1.0,JPA 2.0和Bean Validation 1.0。
這個(gè)例子
該示例由一個(gè)成員實(shí)體組成,該成員實(shí)體具有一些JSR-303(Bean驗(yàn)證)約束。 通常,從數(shù)據(jù)庫(kù)開始,在持久性層,最后是與客戶端緊密交互的視圖層中,對(duì)這些位置進(jìn)行檢查。 即使此快速指南不包含持久層,它也從Enity開始,它很好地反映了現(xiàn)實(shí)生活中的情況。 該應(yīng)用程序包含使用JSF和RichFaces編寫的視圖層,并包括用于新成員注冊(cè)的AJAX向?qū)А?新注冊(cè)的成員需要在實(shí)際“注冊(cè)”之前提供一些信息。 這包括通過電子郵件發(fā)送姓名和電話號(hào)碼。
入門
我將不再重復(fù)出色而詳細(xì)的快速入門已經(jīng)向您展示的內(nèi)容。 因此,如果您想在JBoss AS7上運(yùn)行它,請(qǐng)去那里。 我們從一個(gè)空白的Maven Web項(xiàng)目開始。 最好,最簡(jiǎn)單的方法是啟動(dòng)NetBeans 7.2并創(chuàng)建一個(gè)。 讓我們將其命名為“ richwls-web”。 打開您的pom.xml,然后開始在其中進(jìn)行一些更改。 首先在此處刪除認(rèn)可的內(nèi)容。 我們不需要它。 接下來是添加一點(diǎn)dependencyManagement:
<dependencyManagement><dependencies><dependency><groupId>org.jboss.bom</groupId><artifactId>jboss-javaee-6.0-with-tools</artifactId><version>1.0.0.Final</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>org.richfaces</groupId><artifactId>richfaces-bom</artifactId><version>4.2.0.Final</version><scope>import</scope><type>pom</type></dependency></dependencies></dependencyManagement> 這會(huì)將Java EE 6和RichFaces的物料清單(BOM)添加到您的項(xiàng)目中。 BOM會(huì)指定工件“堆棧”(或集合)的版本。 您可以從RedHat家伙那里找到任何東西,并且認(rèn)為擁有它是“最佳實(shí)踐”。 最后,這可以簡(jiǎn)化您的工作,因?yàn)樗梢詾槟芾戆姹竞鸵蕾図?xiàng)。
關(guān)于冗長(zhǎng)的真實(shí)依賴項(xiàng)列表:
除了RichFaces依賴項(xiàng)之外,其他所有項(xiàng)都由運(yùn)行時(shí)提供。 在這種情況下,它將是GlassFish 3.1.2.2。 如果您尚未在其他地方(settings.xml)定義它,則還應(yīng)該將JBoss存儲(chǔ)庫(kù)添加到構(gòu)建部分:
<repository><id>jboss-public-repository-group</id><name>JBoss Public Maven Repository Group</name><url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url></repository>復(fù)制source-zip的richfaces-validation目錄的內(nèi)容,或從github中檢出它 。 小心一點(diǎn),不要弄亂我們創(chuàng)建的pom.xml;)構(gòu)建它并部署這些東西。
問題
首先,您會(huì)得到一個(gè)很好的焊接信息:
WELD-000054 Producers cannot produce non-serializable instances for injection into non-transient fields of passivating beans [...] Producer Method [Logger] with qualifiers顯然我們這里有一個(gè)問題,需要將Logger字段聲明為瞬態(tài)。
@Inject private transient Logger logger;不知道為什么這可以在AS7上工作,但是有一天我可能會(huì)發(fā)現(xiàn)它是:)下一次迭代:更改,構(gòu)建,部署。
java.lang.NoSuchMethodError: com.google.common.collect.ImmutableSet.copyOf(Ljava/util/Collection;)Lcom/google/common/collect/ImmutableSet;看起來還不錯(cuò)。 在http:// localhost:7001 / wls-cat /上啟動(dòng)WLS CAT,然后嘗試查找它。
似乎Oracle正在服務(wù)器內(nèi)部使用Google Magic。 好的。 我們無法將RichFaces部署為對(duì)WebLogic的獨(dú)立戰(zhàn)爭(zhēng),因?yàn)槲覀冃枰诖颂幗鉀Q一些類加載問題。 推薦的方法是添加一個(gè)所謂的過濾類加載器。 您可以通過將weblogic-application.xml添加到您的耳朵來實(shí)現(xiàn)。 是的:讓我們重新打包所有內(nèi)容,將戰(zhàn)爭(zhēng)放在空曠的耳朵中,然后將魔術(shù)添加到weblogic-application.xml中:
<prefer-application-packages><package-name>com.google.common.*</package-name></prefer-application-packages>做完了嗎 進(jìn)行另一次部署,您終于可以看到您的應(yīng)用程序。 RichFaces基本上是在WebLogic上運(yùn)行的,但是您必須將其打包到耳朵中,并為com.google.common。*類打開類加載器。 使用PrimeFaces可以輕松得多,但是…無論如何,有一些原因讓我嘗試這樣做。 一種是,我很喜歡能夠在客戶端觸發(fā)Bean驗(yàn)證的想法。 如果看一下示例, <rich:validator event ='blur'/>會(huì)為客戶端添加針對(duì)bean驗(yàn)證約束和標(biāo)準(zhǔn)jsf驗(yàn)證器的客戶端驗(yàn)證。 無需弄亂JavaScript或重復(fù)邏輯中的任何內(nèi)容。
祝您編程愉快,別忘了分享!
參考:來自JCG合作伙伴 Markus Eisele在WebLogic 12c上運(yùn)行RichFaces在 Java軟件企業(yè)博客上。
翻譯自: https://www.javacodegeeks.com/2012/09/running-richfaces-on-weblogic-12c.html
weblogic運(yùn)行項(xiàng)目
總結(jié)
以上是生活随笔為你收集整理的weblogic运行项目_在WebLogic 12c上运行RichFaces的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 曝vivo T2 Pro 5G下周推出
- 下一篇: 无参数泛型方法反模式