java - HttpServletResponse 变量未编译

标签 java servlets maven-3

编译以下代码时遇到问题

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String method = request.getParameter("method");
    System.out.println(response.toString());
    System.out.println(response);
    response.setHeader("header", "value");
    System.out.println(response.getHeader("header")); // This is line 103 and gives error

    // more logic here
}

基本上我试图在响应对象中设置一个 header ,我只是想测试它是否被成功设置,这就是我打印它的原因。

但是当我尝试用maven编译上面的代码时,它给出了下面的错误信息

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.114 s
[INFO] Finished at: 2016-01-07T09:33:59+05:00
[INFO] Final Memory: 24M/312M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project inQuireCatalogWS: Compilation failure
[ERROR] service/catalog/SpexWidgetServlet.java:[103,35] error: cannot find symbol
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.

令我困惑的是,maven 能够很好地编译前面的行,并且只提示我调用 getHeader() 方法的行中的变量。我在这里遗漏了什么吗?

编辑

我的环境如下

Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T16:57:37+05:00)
Maven home: /opt/apache-maven-3.3.3
Java version: 1.8.0_45, vendor: Oracle Corporation

pom.xml 中,servlet-api 的条目如下所示

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

最佳答案

那是因为 HttpServletResponse 没有 方法 getHeader() until Servlet API 3.0

您可以检查 containsHeader ()尽管。那已经有很长时间了。或者简单地更新到 Servlet 3.0 - 如果您的容器支持:

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

关于java - HttpServletResponse 变量未编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34647512/

相关文章:

java - Android Java Text to Speech 查看额外字符串信息

java - 从 Apache Storm Bolt 打印

java - 为什么我的 servlet 不转发到我的 .jsp?

java - 如何在 Maven 中启用 Ebean 增强功能?

maven - 如何在没有 Nexus 的情况下托管 Maven 仓库

java - 使用 App Fuse 直接从数据库模式生成 CRUD 操作

禁用按钮时 Java Swing 显示故障

java - 玩 SecureSocial 定制

java - 使用 java servlet api 删除 http header

java - 如何在 Spring 单元测试中注入(inject) ServletContext?