【发布时间】:2018-01-27 05:54:22
【问题描述】:
我有一个 Web 应用程序,直到昨天它都运行良好。它使用 Maven、Spring、JSF、Primefaces、Eclipse (Mars)、Tomcat 8 和 jdk 8。这是我的 pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>PlantPlaces</groupId>
<artifactId>PlantPlaces</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<repositories>
<repository>
<id>prime-repo</id>
<name>PrimeFaces Maven Repository</name>
<url>http://repository.primefaces.org</url>
<layout>default</layout>
</repository>
<repository>
<id>JBoss repository</id>
<url>http://repository.jboss.com/maven2/</url>
</repository>
</repositories>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>4.0</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>3.0.4.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<dependency>
<groupId>org.primefaces.themes</groupId>
<artifactId>all-themes</artifactId>
<version>1.0.10</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.9.5</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.2.7</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.2.7</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- MySQL database driver -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.9</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.10.Final</version>
</dependency>
<!-- EL -->
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>el-impl</artifactId>
<version>2.2</version>
</dependency>
</dependencies>
</project>
我不知道它为什么停止工作,但我不断收到的完整错误是:
原因:类 'org.springframework.web.jsf.el.SpringBeanFacesELResolver' 缺失 运行时依赖项:java.lang.NoClassDefFoundError: javax/el/ELResolver
我尝试了许多不同的 pom 配置,但没有什么能消除该错误。请帮忙
【问题讨论】:
-
对于初学者,请停止混合 spring 版本并重新加载依赖项。要清理 repo,请执行
mvn dependency:purge-local-repository。您在类路径上还有多个 servlet-api 版本,它们也应该提供范围。 -
我已经听从了您的所有建议,但错误仍然存在。感谢您指出我的 pom.xml 中的不一致之处。我会休息一下,稍后再解决
-
你在用什么
ide?,用依赖项重建你的项目或者做一个maveninstall,你还在your faces-config文件中定义了你的el-resolver吗? -
我正在使用 eclipse,我已经尝试了上述步骤,但无济于事。这是我在 faces-config 文件中设置的配置:
org.springframework.web.jsf.el.SpringBeanFacesELResolver -
这是我迄今为止尝试过的。 * 删除 .m2 文件夹并重新下载 maven 依赖项 * 卸载 Tomcat 8.0.38 并重新安装(使用 revo 卸载程序) * 对应用程序正常运行的提交进行了硬 git 重置 * 手动下载 jar 并将它们放在 WEB-INF 下/lib 错误是一样的,即使我手动将javax.el.jar包含在lib文件夹中
标签: java spring eclipse maven jsf