一:概述

  运行tomcat时出现错误,显示一个端口进程已经存在。运行多次都出现错误。还有一个错误是

Exception in thread "main" java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1027) at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862) at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639) at java.base/jdk.internal.loader.ClassLoaders                                             Error running AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ... 10 more

二:具体说明

<1>先看看pom.xml里面的配置

<project xmlns="http:///POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http:///POM/4.0.0 http:///maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.example</groupId>
    <artifactId>javaweb-test1</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>javaweb-test1 Maven Webapp</name>
    <url>http://</url>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    <build>
        <finalName>javaweb-test1</finalName>
        <plugins>
            <!--给maven web项目添加tomcat插件-->
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <!--项目发布后的根目录-->
                    <path>/</path>
                    <!--项目用tomcat的服务端口-->
                    <port>8080</port>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>21</maven.compiler.source>
        <maven.compiler.target>21</maven.compiler.target>
    </properties>
</project>
Exception in thread "main" java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1027) at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862) at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639) at java.base/jdk.internal.loader.ClassLoadersAppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) at space3v.yonghengyu.servlet.HelloServletTest.main(HelloServletTest.java:8) Caused by: java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) at java.base/jdk.internal.loader.ClassLoadersAppClassLoader.loadClass(ClassLoaders.java:188)atjava.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)atspace3v.yonghengyu.servlet.HelloServletTest.main(HelloServletTest.java:8)Causedby:java.lang.ClassNotFoundException:javax.servlet.http.HttpServletatjava.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)atjava.base/jdk.internal.loader.ClassLoadersAppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ... 10 more

发现里面并没有错误,一开始百度搜索说是使用对应项目的命令行使用mvn -clear package仍然运行报错,最后还说是将对应的

 <maven.compiler.source>21</maven.compiler.source>
 <maven.compiler.target>21</maven.compiler.target>

版本改为1.8,最后发现还是错误的。这个明显是不行的,因为我是用的是tomcat11,这个版本对应的jdk版本最低是21.最后使用还是21

<2>这个问题使用命令行杀死对应的进程

这个错误表明您的 Java 程序在运行时找不到 javax.servlet.http.HttpServlet 类,这通常是由于缺少 Servlet 相关的 JAR 包所致。您可以尝试以下方法来解决这个问题:

确保您已经正确地将 Servlet API JAR 包添加到您的项目中。您可以从 Maven 仓库或者 Servlet 官方网站下载适当的 Servlet API JAR 包,并将其放置在项目的类路径下。

如果您使用的是 IDE(例如 Eclipse、IntelliJ IDEA 等),请确保您已经将 Servlet API JAR 包添加到项目的构建路径中。您可以在项目的构建路径设置中添加 JAR 文件。

检查您的项目配置文件(例如 web.xml)是否正确地引用了 Servlet 相关的类。确保您使用的是正确的类路径和类名称。

如果您正在使用 Tomcat 等 Servlet 容器来运行您的应用程序,确保您已经正确地配置了容器,并将 Servlet API JAR 包添加到容器的类路径中。

                                             Error running

                                             Error running

最后运行之后这个问题解决成功运行。

                                             Error running