将 WAR 部署到 Wildfly 14 时出现 commons-lang3 的 ClassNotFoundException

ClassNotFoundException for commons-lang3 when deploying WAR to Wildfly 14

我们正在开发一个应用程序,它使用:

代码编译成功,WAR包被打包。但是,在将 WAR 部署到 Wildfly 中后,出现以下异常:

Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.StringUtils from [Module \"deployment.projectTitle.war:main\" from Service Module Loader]"}}

其他也使用 org.apache.commons.lang3.StringUtils 的 WAR 部署成功。

pom.xml.

中有两个位置设置了这个库

pom.xml

    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
    </dependency>

    <dependencyManagement>
      <dependencies>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>${commons-version}</version>
            <scope>provided</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>

请尝试更改编译范围。从 <scope>provided</scope><scope>compile</scope>

这样您就可以将 war 库包含在您的库中。我认为未提供 Wildfly 内部,这可能是问题所在。

这是由于提供。 Commons 不在您的应用程序的类路径中,因为您告诉 Maven 您会提供它。很像编译,但你希望 JDK 或容器在运行时提供依赖关系,可能 WildFly 没有它。