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

时间:2018-12-20 10:10:40

标签: java maven wildfly

我们正在开发一个使用以下内容的应用程序:

  • Wildfly 14
  • Java EE 7

代码成功编译,并且打包了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>

2 个答案:

答案 0 :(得分:2)

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

这样,您将在战争中包括图书馆。我认为Wildfly内部没有提供,这可能是问题所在。

答案 1 :(得分:2)

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