无法解析javax.servlet.http.HttpServletResponse类型。它是从所需的.class文件间接引用的

时间:2013-07-15 05:38:42

标签: spring spring-mvc

我是春天尝试创建应用程序的新手,以便我可以了解它的工作原理。但是当我编写代码Eclipse IDE gives

无法解析javax.servlet.http.HttpServletResponse类型。它是从所需的.class文件间接引用的

这是我的班级

package testPackage;  
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
import domain.serviceLayer.UserService;
import domain.userDetails.User;

@SuppressWarnings("deprecation")
public class UserLoginFormController extends SimpleFormController  {
    private UserService userService;

    public UserLoginFormController() {
        setCommandClass(User.class);
        setCommandName("user");
    }
    public void setUserService(UserService userService) {
        this.userService = userService;
    }

    @Override
    public ModelAndView onSubmit(Object command) throws Exception {
        // TODO Auto-generated method stub

        User user = (User) command;
        userService.add(user);
        ModelAndView modelAndView = new ModelAndView("success", "user", user);
        return modelAndView;
    } 
}

和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>learnSimpleFormController</groupId>
    <artifactId>learnSimpleFormController</artifactId>
    <version>1.0</version>
    <packaging>war</packaging>  
    <properties>
        <spring.version>3.2.3.RELEASE</spring.version>
    </properties>
    <dependencies>
        <!-- Spring 3 dependencies -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>   
    <!-- Servlet -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        </dependencies>
    <build>
        <finalName>learnSimpleFormController</finalName>
    </build>
</project>

请问有什么问题以及如何删除该错误

3 个答案:

答案 0 :(得分:2)

你的项目没有引用servlet.jar所以只需在你的pom中添加这个依赖

<dependency>
    <groupId>org.apache.geronimo.specs</groupId>
    <artifactId>geronimo-servlet_2.5_spec</artifactId>
    <version>1.2</version>
</dependency>

答案 1 :(得分:2)

您的项目不是指任何运行时环境。 您可以执行以下操作:在您的类中导入jar文件:

import javax.servlet.http.HttpServletResponse

添加Apache Tomcat库如下:

项目&gt;属性&gt; Java构建路径&gt;图书馆&gt;添加库&gt;服务器运行时&gt;下一个&gt; Apache Tomcat v 6.0&gt;完成&gt;确定

答案 2 :(得分:0)

我有同样的例外。 我使用的是spring-boot 1.5.3.RELEASE,但我的同事正在使用spring-boot 1.5.4.RELEASE。

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.3.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

所以当我得到他的代码时,我得到了这个例外。

可能在我的电脑上我有旧的maven jar文件的spring boot和maven无法更新那些jar文件。 即使我从.m2文件夹中删除了spring-boot的所有文件夹,但仍然生成相同的错误

最后,我通过将pom.xml中的弹簧启动版本从1.5.4更改为1.5.3来获得解决方案。