相关疑难解决方法(0)

ClassCastException:DispatcherServlet无法强制转换为Servlet

我使用maven-eclipse创建了一个新的Spring MVC项目,并抛出以下错误:

(我尝试了一些来自stackoverflow的解决方案,这在我的情况下不起作用.我找不到pom.xml的一些问题.我添加了servlet-api提供的范围,并尝试了哪些也无效.)

SEVERE: Servlet /Remindem threw load() exception
java.lang.ClassCastException: org.springframework.web.servlet.DispatcherServlet 
  cannot be cast to javax.servlet.Servlet
Run Code Online (Sandbox Code Playgroud)

我的pom.xml如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.org</groupId>
<artifactId>Remindem</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>

<name>Remindem</name>
<url>http://maven.apache.org</url>

<dependencies>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.0.1</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-plugin-api</artifactId>
        <version>2.0</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>3.6.8.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>4.0.0.Beta2</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.6</version>
    </dependency>
    <dependency>
        <groupId>javassist</groupId>
        <artifactId>javassist</artifactId>
        <version>3.12.1.GA</version>
    </dependency>
    <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>1.4</version>
    </dependency>

    <!-- Spring framework …
Run Code Online (Sandbox Code Playgroud)

java spring servlets pom.xml maven

9
推荐指数
1
解决办法
2万
查看次数

Servlet 5.0 JAR 在 javax.servlet.* 上引发编译错误,但 Servlet 4.0 JAR 不会

我正在尝试从命令行编译和部署一个简单的 Web 应用程序。

来自 Apache Tomcat 的 servlet-api.jar 不编译我的 java 文件,但来自 maven 中央存储库的 javax.servlet-api-4.0.1 编译成功。即便如此,当我部署应用程序并尝试在浏览器中使用它时,我还是收到了错误消息。

我在用:

  • javac 11.0.8
  • Apache Tomcat 10.0 (servlet-api.jar 5.0)

Java文件:

package com.example.controllers;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class BeerSelect extends HttpServlet {
    
    public void doPost(HttpServletRequest request,
            HttpServletResponse response)
            throws IOException, ServletException {

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("Beer Selection Advice <br>");
        String c = request.getParameter("color");
        out.println("<br>Got beer color " + c);
    }               
} 
Run Code Online (Sandbox Code Playgroud)

当我尝试使用 servlet-api.jar 编译它时,我得到:

public class BeerSelect extends HttpServlet {
                                ^
  symbol: …
Run Code Online (Sandbox Code Playgroud)

tomcat servlets compiler-errors

5
推荐指数
1
解决办法
2344
查看次数

标签 统计

servlets ×2

compiler-errors ×1

java ×1

maven ×1

pom.xml ×1

spring ×1

tomcat ×1