我们正在开发一个使用以下内容的应用程序:
代码成功编译,并且打包了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>
答案 0 :(得分:2)
请尝试更改范围以进行编译。从<scope>provided</scope>
到<scope>compile</scope>
这样,您将在战争中包括图书馆。我认为Wildfly内部没有提供,这可能是问题所在。
答案 1 :(得分:2)
这是由于提供的。 Commons不在应用程序的类路径中,因为您告诉Maven您将提供它。就像编译一样,但是您希望JDK或容器在运行时提供依赖关系,可能WildFly没有它。