NoClassDefFoundError在Spring引导中运行JSF

NoClassDefFoundError在Spring引导中运行JSF,jsf,spring-boot,Jsf,Spring Boot,我正想找一双有着整洁面孔的工作靴。我跟着这个例子。我试着将它从gradle迁移到maven,因为项目的另一部分使用maven,但我总是得到它 java.lang.NoClassDefFoundError: javax/servlet/jsp/JspFactory 我在搜索,我找到了这个解决方案,但它对我不起作用 这是pom文件中的我的依赖项列表: <dependencies> <dependency> <groupId>

我正想找一双有着整洁面孔的工作靴。我跟着这个例子。我试着将它从gradle迁移到maven,因为项目的另一部分使用maven,但我总是得到它

java.lang.NoClassDefFoundError: javax/servlet/jsp/JspFactory
我在搜索,我找到了这个解决方案,但它对我不起作用

这是pom文件中的我的依赖项列表:

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-impl</artifactId>
            <version>2.2.8-02</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-api</artifactId>
            <version>2.2.8-02</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.primefaces</groupId>
            <artifactId>primefaces</artifactId>
            <version>5.0</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>javax.el</groupId>
            <artifactId>el-api</artifactId>
            <version>2.2</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.glassfish.web</groupId>
            <artifactId>el-impl</artifactId>
            <version>2.2</version>
            <scope>compile</scope>
        </dependency>

        <!-- Spring web -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>9.4-1201-jdbc41</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-rest</artifactId>
        </dependency>
        <dependency>
            <groupId>org.neo4j</groupId>
            <artifactId>neo4j-cypher-compiler-2.1</artifactId>
            <version>2.1.5</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>3.2.8.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>3.2.8.RELEASE</version>
        </dependency>
    </dependencies>

org.springframework.boot
弹簧靴起动器
org.springframework.boot
弹簧启动机tomcat
假如
com.sun.faces
jsf impl
2.2.8-02
编译
com.sun.faces
JSFAPI
2.2.8-02
编译
org.primefaces
素面
5
编译
javax.el
埃尔api
2.2
编译
org.glassfish.web
厄尔尼普勒
2.2
编译
org.springframework
弹簧网
org.postgresql
postgresql
9.4-1201-jdbc41
运行时
org.springframework.boot
spring引导启动器数据jpa
org.springframework.boot
弹簧启动启动器数据rest
org.neo4j
neo4j-cypher-compiler-2.1
2.1.5
org.springframework.security
spring安全网
3.2.8.1发布
org.springframework.security
spring安全配置
3.2.8.1发布

我还尝试下载所需的库并将它们放入WEB-INF/lib,但没有成功。我使用的是Intelij 14

我可以使用mvn springboot:run命令行运行它。在Intellij Idea中,我们可以将其作为Maven项目运行,并在命令行参数字段中给出“spring boot:run”在Tomcat 7、Spring Boot 1.2.3、JSF Mojarra 2.2.11、PrimeFaces 6.1中运行良好。需要将以下内容添加到pom.xml中

<dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.3</version>
        <scope>provided</scope>
    </dependency>

    <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
    <!--<dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>-->

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>

javax.servlet
servlet api
2.3
假如
javax.servlet
jsp api
2
假如
javax.servlet
jstl
1.2

这种依赖关系的组合帮助我启动了Spring启动并使用JSF运行

这些库为嵌入式Tomcat提供了正确处理JSFServlet请求EL表达式所需的类

    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.2</version>
    </dependency>
    <dependency>
        <groupId>com.sun.el</groupId>
        <artifactId>el-ri</artifactId>
        <version>1.0</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>

javax.servlet.jsp
jsp api
2.2
com.sun.el
埃尔里
1
javax.servlet
jstl
1.2