将 WAR 部署到 Wildfly 14 时出现 commons-lang3 的 ClassNotFoundException
ClassNotFoundException for commons-lang3 when deploying WAR to Wildfly 14
我们正在开发一个应用程序,它使用:
- 野蝇 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>
请尝试更改编译范围。从 <scope>provided</scope>
到 <scope>compile</scope>
这样您就可以将 war 库包含在您的库中。我认为未提供 Wildfly 内部,这可能是问题所在。
这是由于提供。 Commons 不在您的应用程序的类路径中,因为您告诉 Maven 您会提供它。很像编译,但你希望 JDK 或容器在运行时提供依赖关系,可能 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>
请尝试更改编译范围。从 <scope>provided</scope>
到 <scope>compile</scope>
这样您就可以将 war 库包含在您的库中。我认为未提供 Wildfly 内部,这可能是问题所在。
这是由于提供。 Commons 不在您的应用程序的类路径中,因为您告诉 Maven 您会提供它。很像编译,但你希望 JDK 或容器在运行时提供依赖关系,可能 WildFly 没有它。