2012-08-10 66 views
1

我想用MAVEN構建一個JSF項目。我試圖添加我需要的所有依賴項。每次我收到錯誤。Pom在RichFaces和MyFaces的JSF項目中的依賴關係

<dependencies> 
    <dependency> 
     <groupId>org.richfaces</groupId> 
     <artifactId>richfaces-bom</artifactId> 
     <type>pom</type> 
     <version>4.2.2.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.myfaces.core</groupId> 
     <artifactId>myfaces-impl</artifactId> 
     <version>2.0.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.myfaces.core</groupId> 
     <artifactId>myfaces-api</artifactId> 
     <version>2.0.2</version> 
     <scope>compile</scope> 
    </dependency> 

</dependencies> 

我應該加入到這個POM讓自己的項目工程作爲一個真正的JSF項目?

P.S我添加了正確的richfaces依賴關係。我在websphere上遇到了部署問題。

Caused by: javax.faces.FacesException: java.lang.UnsupportedOperationException 
    at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:387) 
    at com.ibm.ws.webcontainer.webapp.WebApp.notifyServletContextCreated(WebApp.java:1651) 
    at com.ibm.ws.webcontainer.webapp.WebAppImpl.initialize(WebAppImpl.java:410) 
    at com.ibm.ws.webcontainer.webapp.WebGroupImpl.addWebApplication(WebGroupImpl.java:88) 
    at com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication(VirtualHostImpl.java:169) 
    ... 17 more 
Caused by: java.lang.UnsupportedOperationException 
    at com.sun.faces.config.ConfigureListener$ApplicationMap.entrySet(ConfigureListener.java:1948) 
+0

我不是Maven傢伙,所以我不會詳細介紹,但我至少可以告訴我,Websphere本身**已經附帶了JSF庫。你應該在那裏配置它,或者至少要關閉它,如果你想從你的Web應用程序控制它。棧跟蹤包含了Mojarra('com.sun.faces。*')行,因此表明它仍然被**使用。 – BalusC 2012-08-10 11:24:55

+0

@BalusC是否有可能禁用websphere自己的庫?我不認爲在wesphere的庫全部uptodate .. – Kayser 2012-08-10 11:55:18

回答

0

RichFaces的扶養您使用的僅僅是一個bom - 它列出了一組兼容的「真實」的依賴,應在你的pomdependencyManagement部分使用:

<dependencyManagement> 
    <dependencies> 
     <dependency> 
     <groupId>org.richfaces</groupId> 
     <artifactId>richfaces-bom</artifactId> 
     <version>4.2.2.Final</version> 
     <type>pom</type> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 

在依賴,你應該有這樣的實現:

<dependencies> 
    <dependency> 
    <groupId>org.richfaces.ui</groupId> 
    <artifactId>richfaces-components-ui</artifactId> 
    <!--version>4.2.2.Final</version--> 
    </dependency> 

    <dependency> 
    <groupId>org.richfaces.core</groupId> 
    <artifactId>richfaces-core-impl</artifactId> 
    <!--version>4.2.2.Final</version--> 
    </dependency> 
<dependencies> 

依賴關係的版本元素是冗餘螞蟻,如果你正在使用bom。您最好將其刪除,因爲您可能會不情願地取代bom設置。

編輯:您收到的錯誤看起來像一個配置問題給我。不知道是什麼原因造成的。我的建議是從一個有效的Web應用程序示例開始,然後添加其他依賴項。我最喜歡的方式是讓行家從原型geneare web應用程序:

mvn archetype:generate

然後你會看到possibl原型的一個長長的清單。嘗試使用JSF,如jsf-weld-servlet-webappweld-jsf-jeerichfaces-archetype-simpleapp。這些已知工作,並且您可以對pom和項目的其餘部分進行抽樣以查看可能丟失的內容。

+0

我改變了richfaces依賴。但我通過部署得到了異常.. – Kayser 2012-08-10 09:46:41

+0

@Kayser - 增加了解決方法提示 – kostja 2012-08-10 10:48:19