代码之家  ›  专栏  ›  技术社区  ›  hFonti

在eclipse中找不到HttpServlet请求#login()方法

  •  1
  • hFonti  · 技术社区  · 11 年前

    我正试图让这个例子发挥作用: http://jugojava.blogspot.de/2011/07/jsf-form-authentication-on-servlet-3.html 问题发生在:

    request.login(username, password);
    

    Eclipse表示:“对于HttpServlet请求类型,方法login()是未定义的”。 我将jdk 1.7与Mojarra 2.1.0和Glassfish 3.1一起使用。

    谢谢你的帮助!

    2 回复  |  直到 11 年前
        1
  •  1
  •   Community Marks    4 年前

    介绍了该方法 since Servlet 3.0 因此,只有当您针对兼容Servlet 3.0的容器(如Glassfish 3.x)配置和开发项目时,它才可用。

    然而,您似乎已经有了Glassfish 3.x。考虑到您正在Eclipse中开发,这个特定问题还有其他可能的原因:

    • Glassfish并没有作为项目的目标运行时关联。在项目的属性中,确保已在 目标运行时间 部分通过这种方式,Eclipse将自动将其库包含在项目的构建路径中。

      enter image description here

    • 项目未配置为Servlet 3.0项目。在项目的属性中,确保 动态Web模块 版本设置为3.0英寸 项目方面 部分通过这种方式,Eclipse将自动针对3.0版本而不是更低版本进行构建。

      enter image description here

    • 您已手动下载任意 javaee.jar 和/或 servlet-api.jar 一个完全不同的servlet容器版本的文件,并通过 /WEB-INF/lib 这比Glassfish自己的库更重要。这是完全错误的。你不应该那样做。撤消所有这些更改。如果您正确地将服务器指定为目标运行时,这是不必要的。

    另请参阅:

        2
  •  0
  •   AllTooSir    11 年前

    添加 Servlet 3.0 API jar到类路径,或者使用支持 Servlet 3.0 .