Java 在Intellij中运行TomCat时引发NoCLassDefFoundError和ClassNotFoundException

Java 在Intellij中运行TomCat时引发NoCLassDefFoundError和ClassNotFoundException,java,maven,intellij-idea,classnotfoundexception,Java,Maven,Intellij Idea,Classnotfoundexception,我正在尝试构建一个服务器来承载slack bot。我已经在maven文件中包含了外部库org.json并运行了它,Intellij中没有任何错误,但是当我开始运行它(使用Tomcat Server 9.0.24)并向服务器发送帖子时,我得到了java.lang.NoClassDefFoundError:org/json/JSONObject和java.lang.ClassNotFoundException:org.json.JSONObject 解决方案似乎是在编译过程中包含实际的.jar文件,

我正在尝试构建一个服务器来承载slack bot。我已经在maven文件中包含了外部库org.json并运行了它,Intellij中没有任何错误,但是当我开始运行它(使用Tomcat Server 9.0.24)并向服务器发送帖子时,我得到了
java.lang.NoClassDefFoundError:org/json/JSONObject
java.lang.ClassNotFoundException:org.json.JSONObject

解决方案似乎是在编译过程中包含实际的.jar文件,但我认为它已经包含在
Project Settings->Libraries

pom.xml
包含依赖项

<dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.json/json -->
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20190722</version>
        </dependency>
    </dependencies>
触发错误的还只是
org.json
,而不是另一个依赖项
javax.servlet


我见过一些解决方案,但大多数都是针对Eclipse或过时的Intellij的。我还尝试过将库的.jar文件直接复制到
WEB-INF/lib
,但也没有成功

我通过将库的
.jar
文件添加到
WEB-INF/lib
文件夹并运行
mvn clean

解决了这个问题,因为这个问题是从2013年开始的,在Eclipse中,所以它不适用于您将其作为战争部署到tomcat?@WilliamBurnham是的,这是一个战争文件,但我通过运行
mvn clean
(我还不能接受我自己的答案)解决了这个问题。Maven应该在构建战争时自动这样做。
// Convert POST body to json
        JSONObject json = new JSONObject(jb.toString());

        // Print out the contents of challenge
        System.out.println(json.get("challenge"));