我试图让这个例子工作: http: //jugojava.blogspot.de/2011/07/jsf-form-authentication-on-servlet-3.html 问题发生在:
request.login(username, password);
Eclipse 说:“HttpServletRequest 类型的方法 login() 未定义”。我将 jdk 1.7 与 Mojarra 2.1.0 和 Glassfish 3.1 一起使用。
谢谢你的帮助!
我试图让这个例子工作: http: //jugojava.blogspot.de/2011/07/jsf-form-authentication-on-servlet-3.html 问题发生在:
request.login(username, password);
Eclipse 说:“HttpServletRequest 类型的方法 login() 未定义”。我将 jdk 1.7 与 Mojarra 2.1.0 和 Glassfish 3.1 一起使用。
谢谢你的帮助!
从 Servlet 3.0 开始引入该方法。因此,仅当您针对 Servlet 3.0 兼容容器(例如 Glassfish 3.x)配置和开发项目时,它才可用。
但是,您似乎已经拥有 Glassfish 3.x。鉴于您在 Eclipse 中开发,还有其他可能导致此特定问题的原因:
Glassfish 未关联为项目的目标运行时。在项目的属性中,确保它已在Targeted Runtimes部分中被选中。这样 Eclipse 将自动将其库包含在项目的构建路径中。
项目未配置为 Servlet 3.0 项目。在项目的属性中,确保在Project Facets部分中将Dynamic Web Module版本设置为 3.0 。这样 Eclipse 将自动构建版本 3.0 而不是较低的版本。
您已经手动下载了完全不同的 servletcontainer 版本的任意文件javaee.jar
和/或servlet-api.jar
文件,并将其放在项目的 buildpath/classpath 中,通过/WEB-INF/lib
它优先于 Glassfish 自己的库。这是完全错误的。你不应该那样做。撤消所有这些更改。如果您正确地将服务器指定为目标运行时,则这是不必要的。
将Servlet 3.0 API
jar 添加到类路径中,或使用支持Servlet 3.0
.