eclipse项目编译报错The method getLocalPort() is undefined for the type HttpServletRequest
原因及解决办法:
j2ee.jar包中的servlet版本或者是jboss中的servlet-api.jar包的版本比较旧,当servlet版本低于2.4时,HttpServletRequest类中不存在getLocalPort()方法。可以下载高于2.4版本的jar包替换掉旧的jar包,重新编译,能够解决问题。
jar包查看版本方法:
使用解压缩软件打开jar包,打开META_INF文件夹,使用文件编辑器查看MANIFEST.MF文件,即可找到规范版本信息和执行版本信息。
j2ee.jar包中的META_INF文件夹图示:
j2ee.jar包中的MANIFEST.MF文件文件图示:
MANIFEST.MF内容图示:
serverlet各个版本和各个版本之间的区别 (仅作参考):
Servlet 3.0 December 2009 JavaEE 6, JavaSE 6 Pluggability, Ease of development, Async Servlet, Security, File Uploading
Servlet 2.5 September 2005 JavaEE 5, JavaSE 5 Requires JavaSE 5, supports annotations
Servlet 2.4 November 2003 J2EE 1.4, J2SE 1.3 web.xml
Servlet 2.1 November 1998 Unspecified First official specification, added RequestDispatcher, ServletContext
Servlet 2.0 JDK 1.1 Part of Java Servlet Development Kit 2.0
Servlet 1.0 June 1997 undefined