1

我想用 MAVEN 构建一个 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 项目工作?

PS我添加了正确的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)
4

1 回答 1

0

您正在使用的 Richfaces 依赖项只是一个bom- 它列出了一组兼容的“真实”依赖项,应该在dependencyManagement您的部分中使用pom

  <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设置。

编辑:你得到的错误对我来说看起来像是一个配置问题。不确定是什么原因造成的。我的建议是从一个有效的 webapp 示例开始,然后添加其他依赖项。我最喜欢的方法是让 maven geneare 成为原型的 webapp:

mvn archetype:generate

然后,您将看到一长串可能的原型。尝试其中包含 JSF 的内容,例如jsf-weld-servlet-webapporweld-jsf-jeerichfaces-archetype-simpleapp。这些都是已知的,您可以pom对项目的其余部分进行抽样,以查看可能缺少的内容。

于 2012-08-10T09:17:55.507 回答