为什么我在HttpServletResponse中找不到方法setContentLengthLong(long len)?

时间:2014-10-05 12:28:41

标签: java eclipse maven servlet-3.1

我在Eclipse中,前段时间我正在使用这种方法:http://docs.oracle.com/javaee/7/api/javax/servlet/ServletResponse.html#setContentLengthLong(long)现在我无法设法使用它。我使用的是JDK 1.7,我在pom.xml中插入了以下依赖项:

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
</dependency>

我已经使用Maven清理和更新了项目。我甚至关闭并打开了Eclipse。我写的时候:

response.setContentLengthLong(downloadFile.length());

我明白了:

The method setContentLengthLong(long) is undefined for the type HttpServletResponse

我做错了什么?

3 个答案:

答案 0 :(得分:0)

最可能的原因是你帖子的第二条评论。 “其他版本的servlet api也在你的类路径中。在Eclipse中打开HttpServletResponse类,并在资源管理器中查找它所属的jar文件.-- JB Nizet”

http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletResponse.html

如果您查看jdk 6的文档,您会发现它不包含该方法。

答案 1 :(得分:0)

我今天遇到了同样的问题。 我正在使用IDEA,所以我从maven选项卡中打开“Show Dependencies”,并搜索“servlet-api”,其中有一个版本为2.4。

从pom.xml中排除它,并且构建成功。

答案 2 :(得分:0)

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    <scope>provided</scope>
</dependency>

代替

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
</dependency>

使用..然后...解决了.....