Maven NoClassDefFoundError:javax/faces/component/UIViewAction在TomEE启动时

Maven NoClassDefFoundError:javax/faces/component/UIViewAction在TomEE启动时,maven,jsf,apache-tomee,omnifaces,tomee-7,Maven,Jsf,Apache Tomee,Omnifaces,Tomee 7,我正在尝试将一个web项目(web-INF/lib中的所有JAR)迁移到一个maven web项目(pom.xml中的所有JAR) 此项目使用以下库: JSF2.2 素面 靴面 全方位 它在我身上运行 TOME启动时出现以下错误: NoClassDefFoundError:javax/faces/component/UIViewAction 但JSF2库是由TomEE在类路径上提供的 这是我的pom.xml <project xmlns="http://maven.apache.org

我正在尝试将一个web项目(web-INF/lib中的所有JAR)迁移到一个maven web项目(pom.xml中的所有JAR)

此项目使用以下库:

  • JSF2.2
  • 素面
  • 靴面
  • 全方位
它在我身上运行

TOME启动时出现以下错误:

NoClassDefFoundError:javax/faces/component/UIViewAction

但JSF2库是由TomEE在类路径上提供的

这是我的
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>com.lb</groupId>
<artifactId>XXX</artifactId>
<version>0.0.1</version>
<packaging>war</packaging>
<name>XXX</name>
<description>Application XXX</description>

<url>http://XXX.fr</url>
<organization>
    <name>XXX</name>
    <url>http://XXX.fr</url>
</organization>
<inceptionYear>2016</inceptionYear>


<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <javase.version>1.7</javase.version>
    <javaee.version>7.0</javaee.version>
</properties>

<developers>
    <developer>
        <id>XXX</id>
        <name>YYY</name>
        <email>ZZZ@gmail.com</email>
    </developer>
</developers>

<build>
    <directory>${basedir}/target/${project.artifactId}-${project.version}</directory>
    <finalName>XXX</finalName>

    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.java</include>
            </includes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
        </resource>
    </resources>

    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>${javase.version}</source>
                <target>${javase.version}</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <webResources>
                    <resource>
                        <directory>${basedir}/src/main/webapp/WEB-INF</directory>
                        <filtering>true</filtering>
                        <targetPath>WEB-INF</targetPath>
                    </resource>
                    <resource>
                        <directory>${basedir}/src/main/resources</directory>
                        <filtering>true</filtering>
                        <targetPath>WEB-INF/resources</targetPath>
                    </resource>
                </webResources>
                <webXml>${basedir}/src/main/webapp/WEB-INF/web.xml</webXml>
                <warSourceDirectory>${basedir}/src/main/webapp</warSourceDirectory>
                <packagingExcludes>
                    **/*.java,
                </packagingExcludes>
            </configuration>
        </plugin>
    </plugins>
</build>
<dependencies>

    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.6</version>
    </dependency>
    <dependency>
        <groupId>org.primefaces</groupId>
        <artifactId>primefaces</artifactId>
        <version>5.3</version>
    </dependency>
    <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>1.10</version>
    </dependency>

    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.4</version>
    </dependency>

    <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>1.3.1</version>
    </dependency>
    <dependency>
        <groupId>org.primefaces.themes</groupId>
        <artifactId>bootstrap</artifactId>
        <version>1.0.10</version>
    </dependency>

    <dependency>
        <groupId>net.bootsfaces</groupId>
        <artifactId>bootsfaces</artifactId>
        <version>0.8.1</version>
    </dependency>
    <dependency>
        <groupId>org.omnifaces</groupId>
        <artifactId>omnifaces</artifactId>
        <version>2.2</version>
    </dependency>
</dependencies>
<repositories>
    <repository>
        <id>prime-repo</id>
        <name>PrimeFaces Maven Repository</name>
        <url>http://repository.primefaces.org</url>
        <layout>default</layout>
    </repository>
</repositories>

4.0.0
com.lb
XXX
0.0.1
战争
XXX
应用程序XXX
http://XXX.fr
XXX
http://XXX.fr
2016
UTF-8
UTF-8
1.7
7
XXX
YYY
ZZZ@gmail.com
${basedir}/target/${project.artifactId}-${project.version}
XXX
src/main/java
**/*.爪哇
src/main/resources
org.apache.maven.plugins
maven编译器插件
3.1
${javase.version}
${javase.version}
UTF-8
maven战争插件
2.6
${basedir}/src/main/webapp/WEB-INF
符合事实的
WEB-INF
${basedir}/src/main/resources
符合事实的
WEB-INF/资源
${basedir}/src/main/webapp/WEB-INF/WEB.xml
${basedir}/src/main/webapp
**/*.java,
log4j
log4j
1.2.17
mysql
mysql连接器java
5.1.6
org.primefaces
素面
5.3
通用编解码器
通用编解码器
1.10
公地io
公地io
2.4
文件上传
文件上传
1.3.1
org.primefaces.themes
独自创立
1.0.10
net.bootsfaces
靴面
0.8.1
org.omnifaces
全方位
2.2
优质回购
PrimeFacesMaven存储库
http://repository.primefaces.org
违约

谢谢你的帮助

该类是自JSF2.2以来的新类。因此,您根本没有使用JSF2.2。您很可能只使用JSF2.1附带的Tomee1.x

这个问题是由OmniFaces 2.2引发的。它需要JSF2.2

您有两种选择:

  • 降级到OmniFaces 2.1。尽管OmniFaces2.x正式发布为JSF2.2,但OmniFaces2.0和2.1版本没有部署时JSF2.2依赖项。OmniFaces版本2.2带有
    标记,是部署期间需要JSF 2.2的第一个版本

  • 升级到Tomee7.x,这是实现JavaEE7的第一个版本,因此本质上是JSF2.2。它目前只是M1版本。最终版本预计在几个月内发布

  • 该类是自JSF2.2以来的新类。因此,您根本没有使用JSF2.2。您很可能只使用JSF2.1附带的Tomee1.x

    这个问题是由OmniFaces 2.2引发的。它需要JSF2.2

    您有两种选择:

  • 降级到OmniFaces 2.1。尽管OmniFaces2.x正式发布为JSF2.2,但OmniFaces2.0和2.1版本没有部署时JSF2.2依赖项。OmniFaces版本2.2带有
    标记,是部署期间需要JSF 2.2的第一个版本

  • 升级到Tomee7.x,这是实现JavaEE7的第一个版本,因此本质上是JSF2.2。它目前只是M1版本。最终版本预计在几个月内发布


  • 第二种选择效果很好。我在两个项目中使用了
    tomee7.0.0-M1
    ,以实现JSF2.2+,并且它按照预期工作。应该是@ludovic BernadaHello的有效解决方案,第二个选项对我来说也很好。在花2个小时搜索之前,我应该先问一下:)谢谢巴卢斯克的回答,谢谢姆维斯纳的测试。第二个选项效果很好。我在两个项目中使用了
    tomee7.0.0-M1
    ,以实现JSF2.2+,并且它按照预期工作。应该是@ludovic BernadaHello的有效解决方案,第二个选项对我来说也很好。在花两个小时搜索之前,我应该先问一下:)谢谢巴卢斯的回答,谢谢姆维斯纳的测试。