【发布时间】:2012-09-14 12:39:34
【问题描述】:
我一直在将一个耳朵项目从 Ant 迁移到 Maven,我发现了这个问题:
GRAVE:部署期间出现严重错误: com.sun.faces.config.ConfigurationException:配置失败!默认实现必须覆盖此方法
来自项目 web 的 POM 配置如下:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.alquilaweb</groupId>
<artifactId>Maven-ejb</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.1.7</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.1.7</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>${primefaces.version}</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
我搜索了很多,但找不到任何解决方案。也许这是一件愚蠢的事情,但我找不到这个异常发生在哪里。
问候,
萨朗
【问题讨论】:
-
我不是 Maven 人,但为什么不将
javax.servlet条目设置为provided或compile? Glassfish 本身已经提供了这些部分,甚至更多的是,Servlet 版本存在冲突。 Java EE 6 / Glassfish 3 是 Servlet 3.0。 -
啊哈可以这样。当我回到家时,我将设置此依赖项的范围。 @BalusC我有一个问题:如果我添加javax依赖而不是javax.servlet会发生什么?它会起作用,对吗?因为 javax 包含 servlet api?还是必须明确包含 javax.servlet?谢谢大哥!
-
我不做 Maven。我只是根据逻辑思维进行推理。
-
好的。不是那样的。我也收到了这个日志.. java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.RuntimeException: com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED!默认实现必须覆盖此方法
-
我已经更改了 pom 文件的配置,我只是让这个为 jsf ..
.. 但是,我得到了同样的错误。请帮我!!!!我发现这个错误是和jsf库有冲突或者设置有问题的时候出现的。javax.faces jsf-api 2.0